矩阵操作库(Nuumpy)
一.数据结构
numpy.genfromtxt():打开txt文件(不重要)
常用参数delimiter:分隔符
dtype
numpy.array([list]):
传入list转换成ndarray(最核心)格式
有几个[ ]就有几个维度。
numpy.array([list]).shape:
查看维度(几行几列)
注意:向ndarray里面传入的list数据必须统一type(数据类型)则会自动统一。
技巧:向量切片与list相同
矩阵切片
[:,2]:所有行第二列
[:,0:2]:所有行第零列到第二列,包括零不包括二。
[1:3,0:2]:一到三行,包括一不包括三,零到二列,包括零不包括二。
小结:逗号前面是行,后面是列,取所有行或列用冒号占位。
-----------
二.基本操作
判断操作: ==
判断向量或者矩阵中每一个元素是否等于右值。
判断结果是原形式的布尔值,可以用True或False作为索引值求得该右值。
与,或操作
与:前后都为真才为真。
或:前后都为假才为假。
数据类型转换
numpy.arrary([list]).astype(数据类型)
最大最小值
numpy.array([list]).min()
求和操作
numpy.array([list]).sum(axis = 1或0)
axis=1 按行求和
axis=0 按列求和
----------
三.矩阵属性
np.arrange(个数).reshape几行,几列)
np.arrange(起始值,终点值,每一次加几)
技巧:用打印每一行的shape来进行debug
矩阵.ndim:查矩阵维度
.size :矩阵元素个数
.dtype.name :查看数据类型
----------
四.矩阵操作
初始化:
np.zeros((几行,几列))
默认数据类型为float
np.ones((几行,几列),dtype = np.int32)# 转换成int型
注意:dtype 要传np.int32 而不是int32 因为要转换成np支持的ndarray格式
随机模块:
np.random.random((几行,几列))
构造随机初始化矩阵值域[-1,1]。
np.linspace(起始值,终点值,求值个数)
按求值个数在区间内平均取值。
矩阵减法:
相同维度的矩阵相减,对应位置元素相减。
矩阵减数值,每一个元素都减那个数值
乘方操作也如此.
矩阵乘法:
*代表内积,对应位置相乘
A.dot(B) 或np.dot(A,B) 行乘以列相加作为元素
---------
五.常用函数
np.exp(b) 求r的几次幂
np.sqrt() 求根号
np.floor() 向下取整
矩阵.ravel() 矩阵拉长(降维)
矩阵.T 转置
矩阵.vstack(a,b) 拼接a,b样本()#竖直拼接,按列拼接
矩阵.hstack(a,b) 水平拼接,按行拼接
np.hsplit(矩阵,切几份) 按列平均切分
np.hsplit(矩阵,(第一刀位置,第二刀位置)) 在具体位置切
np.vsplit() 按行切
= 完全复制 id值也相同,指向同一个东西
浅复制(不推荐)
矩阵.view()
复制后id不同,但共用一组数据。
矩阵.copy()
一个变量成为另一个变量的初始值,修改一个另一个不会改变,自己做自己的事情。
矩阵.argmax() 最大值 的index值axis = 0按列 =1 按行
np.tile(矩阵,(行几倍,列几倍))
将行和列复制成原来的n倍
矩阵.sort(axis = 1) 从小到大排序
np.argsort() 按索引值进行排序