python 《numpy》
- import numpy as np
创建一个矩阵
- array = np.array([[1, 2, 3],
- [3, 2, 1]])
- print(array)
- # [[1 2 3]
- # [3 2 1]]
- print('array dim:', array.ndim) # 显示几维
shape 矩阵的形状
- print('shape:', array.shape) # 显示几行几列
设置元素的类型
- a = np.array([1, 2, 3], dtype=np.float)
- print(a.dtype)
- # float64
有时候我们会生成矩阵
- # ####### 生成全部为0的矩阵 #########
- zero = np.zeros((3, 4), dtype=int)
- print(zero)
- # [[0 0 0 0]
- # [0 0 0 0]
- # [0 0 0 0]]
- # ########生成全部为1的矩阵 ###############
- ones = np.ones((3, 5))
- print(ones)
- # [[1. 1. 1. 1. 1.]
- # [1. 1. 1. 1. 1.]
- # [1. 1. 1. 1. 1.]]
- # ######### reshape #####################
- _range = np.arange(20).reshape((5, 4))
- print(_range)
- #[[ 0 1 2 3]
- # [ 4 5 6 7]
- # [ 8 9 10 11]
- # [12 13 14 15]
- # [16 17 18 19]]
- # ########### 线段 ###################
- linplace = np.linspace(0, 10, 6)
- print(linplace)
线段矩阵,表示从0到10的闭区间也就是11个数,取6个数出来
2.矩阵的分隔
- import numpy as np
- a = np.array([[0, 1, 2],
- [2, 3, 4]])
- b = np.arange(0, 6).reshape([3, 2])
- print(a)
- print(b)
- print(a > 3) # 每个元素都判断一边是不是满足条件不满足返回false,满足返回trueprint(a+b) # 加法减法都一样print(a*b) # 乘法 对应位置相乘print('########################')print(np.sin(a)) # sin cos tan都可以(每个位置分别sin ...)print(np.dot(a, b)) # 矩阵相乘 ()# 还有一种表达方式为 a.dot(b)
- x = np.random.random([2, 4]) # 随机生成一个在0到1之间的x
- print(x)
- print(x.sum(axis=0)) # 全部元素的和 axis等于0在每一列寻找 等于1在每一行中寻找
- print(x.max()) # 最大值
- print(x.min()) # 最小值
- print(np.argmin(a)) # 返回最小值的索引
- print(a.argmax()) # 返回最大值的索引
- print(np.average(a)) # 这样也可以返回平均值 但是这个不能a.median()
- print(a.mean()) # 返回平均值 当然 np.argmean()也可以
- print(np.median(a)) # 中位数 这个不能 a.median()
- print(np.cumsum(a)) # 元素个数相同,每个元素是之前的累加
- print(np.diff(a)) # 两个元素之间的差
- print(np.nonzero(a)) # 返回两个数列分别表示行,列
- print(np.sort(a)) # 排序
- print(np.transpose(a)) # 转置
- print(a.T) # 转置
- print(np.clip(a, 5, 9)) # 所有小于五的数都设置为5 大于9的数变为9
3.矩阵的索引
- # 什么a[0] a[0][1] for row in a 的我就不讲了,反正也会
- # 其实a[0][1] 也可以表示为a[0, 1]
- for row in a:
- print(row) # 打印行
- for column in a.T:
- print(column) # 打印列
- # 最后依然说一些关于迭代输出的问题:
- A = np.arange(3, 15).reshape((3, 4))
- print(A.flatten())
- # array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
- for item in A.flat:
- print(item)
4.矩阵的分割
- import numpy as np
- A = np.arange(12).reshape((3, 4))
- X = np.split(A, 3, axis=0) # 横这分割
- x = np.vsplit(A, 3) # 横这分割
- Y = np.split(A, 4, axis=1) # 列着分割
- y = np.hsplit(A, 4) # 列着分割
- print(type(A))
- # <class 'numpy.ndarray'>
- print(X)
- # [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
- print(type(X))
- # <class 'list'>
- Z = np.array_split(A, 5, axis=1) # 不对等分割
- print(A)
- # [[ 0 1 2 3]
- # [ 4 5 6 7]
- # [ 8 9 10 11]]
- print(Z)
- # [array([[0],
- # [4],
- # [8]]), array([[1],
- # [5],
- # [9]]), array([[ 2],
- # [ 6],
- # [10]]), array([[ 3],
- # [ 7],
- # [11]]), array([], shape=(3, 0), dtype=int32)]
5.矩阵的合并
- import numpy as np
- A = np.array([1, 2, 3])
- print(A.shape) # 此时A不是矩阵属性,只是一个列表属性
- # (3,)
- print(A.T) # 所以转置无效
- # [1 2 3]
- # 需要变为矩阵在来转置
- # ######### 把a变成矩阵
- print(A[np.newaxis, :].shape)
- # (1, 3)
- B = np.array([5, 6, 7])
- C = np.vstack((A, B)) # 上下合并
- D = np.hstack((A, B)) # 左右合并
- print(C)
- # [[1 2 3]
- # [5 6 7]]
- print(D)
- # [1 2 3 5 6 7]
- print(C.T)
- # [[1 5]
- # [2 6]
- # [3 7]]
python 《numpy》的更多相关文章
- 高阶NumPy知识图谱-《利用Python进行数据分析》
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...
- 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子
http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...
- 《Python计算机视觉编程》
<Python计算机视觉编程> 基本信息 作者: (美)Jan Erik Solem 译者: 朱文涛 袁勇 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978711535 ...
- 《用 Python 学微积分》笔记 3
<用 Python 学微积分>原文见参考资料 1. 16.优化 用一个给定边长 4 的正方形来折一个没有盖的纸盒,设纸盒的底部边长为 l,则纸盒的高为 (4-l)/2,那么纸盒的体积为: ...
- 《用 Python 学微积分》笔记 2
<用 Python 学微积分>原文见参考资料 1. 13.大 O 记法 比较两个函数时,我们会想知道,随着输入值 x 的增长或减小,两个函数的输出值增长或减小的速度究竟谁快谁慢.通过绘制函 ...
- 《用 Python 学微积分》笔记 1
<用 Python 学微积分>原文见参考资料 1. 1.多项式 f(x)=x3-5x2+9 def f(x): return x**3 - 5*x**2 + 9 print f(3) pr ...
- 《Python学习手册》(二)
<Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...
- 「学习记录」《数值分析》第二章计算实习题(Python语言)
在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各 ...
- python爬虫及结巴分词《攀登者》影评分析
<攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...
随机推荐
- day27 Pyhton 面向对象02 组合
# 组合 # 什么是组合 : 一个类对象的属性是另外一个类的对象 class Person: def __init__(self,name,sex,hp,mp,ad): self.name = nam ...
- spring boot:用dynamic-datasource-spring-boot-starter配置多数据源访问seata(seata 1.3.0 / spring boot 2.3.3)
一,dynamic-datasource-spring-boot-starter的优势? 1,dynamic-datasource-spring-boot-starter 是一个基于springboo ...
- go 结构体与方法
go 结构体与方法 go 结构体相当于 python 中类的概念,结构体用来定义复杂的数据结构,存储很多相同的字段属性 结构体的定义 1.结构体的定义以及简单实用 package main imp ...
- Typora图片一键传——picgo使用兰空图床
Typora picgo使用兰空图床 最近smms图床免费版的速度眼看着越来越慢,特别是到晚上,图片几乎是在原地打转,于是我想替换掉Typora中picgo默认使用的smms图床,网上的教程清一色地只 ...
- Nginx02---配置文件
Nginx(二)------nginx.conf 配置文件 目录 1.nginx.conf 的主体结构 2.全局块 3.events 块 4.http 块 ①.http 全局块 ②.server ...
- Callable接口
Callable与Runnable的不同区别在于: 1.Callable有返回值 Runnable没有返回值 2.Callable需要实现的方法是call方法 Runnable需要实现的方 ...
- 第六章 DQL 数据查询语言
一.select 简单查询命令 #1.查询表中所有的数据 mysql> select * from test.student; #2.查看所有数据之前,先查看数据量 mysql> sele ...
- 如何在 vue 项目里正确地引用 jquery
转载 2016年11月13日 使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要修改的是build/webpack.base.conf.js,修改两处的代码 / ...
- 联赛模拟测试25 C. Repulsed 贪心+树形DP
题目描述 分析 考虑自底向上贪心 \(f[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的需要灭火器的房间数,\(g[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的多余灭火器 ...
- 【转】Optimized Surface Loading and Soft Stretching
FROM:http://lazyfoo.net/tutorials/SDL/05_optimized_surface_loading_and_soft_stretching/index.php Opt ...