4.Numpy常用函数。
(1) reshape(a,b)
reshape函数可以对数据进行整体变换变成a行b列。
import numpy as np 的意思的引用numpy取别名为np来代替numpy,比较简洁。
其中 ndarray.ndim
返回维度。
(2).np.zeros((a,b))
初始化一个a行b列,元素全是0的矩阵。(注意里面两个括号)。若要指定数据类型。no.zeros((a,b).dtype=np.xxx)
np.ones(a.b)
初始化一个a行b列,元素全是1的矩阵。
(3). .arange(a,b,c)
构造出一组数,从a开始,到b(不包括b)结束,中间间隔c。
若arange(a),括号里面只有一个数,则表示构造从0到a(不包括a),
(4).np.linspace(a,b,c)
构造出c个数,从a开始,b结束(包括b),每个数间隔相同。
(5).np.random.random(a,b)
生成一组随机的在-1和+1内的数,放进a行b列的矩阵。
(6).矩阵的加减
在对应位置进行加减,两个矩阵大小应该一致。
(7). 乘法
numpy矩阵*乘是算内积。
a.dot(b)或者np.dot(a,b)是矩阵的乘法,一个行乘一个列,
5.矩阵常用操作
(1).矩阵变向量 或矩阵改变行数列数
解释:
np.floor()操作是向下取整。
a.ravel()是将矩阵拉成向量。
a.shape=(a,b)讲向量组合成一个a行b列的组合。当其中一个元素是负一时,这个-1自动变成符合的数字。
a. T 矩阵转置。
(2)矩阵的拼接
np.hstack(a,b)横着拼a,b矩阵数据。
np.vstack(a,b)竖着拼a,b矩阵数据。
(3).矩阵的分割
np.hsplit(a,x) 横着分割矩阵,平均分成x份。
np.vsplit(a,x)竖着分割矩阵,平均分成x份。
np.hsplit(a,(x1,x2,x3.....)) 横着分割矩阵a,在x1位置分一次,x2位置分一次,.........
np.vsplit(a,(x1,x2,x3.....)) 竖着分割矩阵a,在x1位置分一次,x2位置分一次,.........
6.不同复制操作对比。
有三种复制的方法。
(1)b=a 对b作变换的时候,a也会变。a和b变量只是名字不同,但是指向的东西是一个东西。
(2).c=a.view() 浅拷贝。a,c指向的是不同的东西,但是不同的东西里面共用了一堆值。所以改变c的值,a的值也会变。
(3)d=a.copy()。深复制,它们值的东西不一样,而且里面的值也不一样,复制之后便互相没有影响了。
7.排序和索引
(1) .argmax(axis=0)
返回每一列数值最大的数的索引值。通过索引值,可以找最大的数。
.argmax(axis=1)
返回每一行数值最大的数的索引值。通过索引值,可以找最大的数。
补充:data.shape[0]返回的是行的长度
data.shape[1]返回的是列的长度
(2). np.tile(a,(x1,x2))
将矩阵a作扩展,行变成x1倍,列变成x2倍。
(3) sort
np.sort(a,axis=1) 或者 a.sort(axis=1) 对矩阵a按行进行排序
np.sort(a,axis=0) 或者 a.sort(axis=0) 对矩阵a按列进行排序
np.argsort(a) 对索引值进行从小到大排序