索引
索引有两种形式,第一种就是类似于在c语言中的,一个‘【】’里放一个数字,分别代表行,列,对于一维的就是数组的访问,即第几个。
第二种就是python中独有的,【行,列】 或者 【:,列】or【行,:】即某一列的所有的数或者是某一行所有的数。也可以是用a:b这种从a到b 配合使用。
a=np.arange(3,15). //普通版本 print(a[n]) //c语言版本的索引 //升级版本,主要体现在二维上 b=a.reshape(3,4) print(b[2,1]) print(b[:,1]) or print(1,:) print(1:2,1) 表示第二列第二个数字到第三个数字
矩阵的合并
A=np.array([1,1,1])
B=np.array([2,2,2])
np.vstack((A,B)) //vertical stack 上下的粘连 就是[[1,1,1],
[2,2,2]]
np.hstack((A,B))//水平合并 [1,1,1,2,2,2]
//多个一维数组的合并
np.concatenate(array1,array2.... ,axis) //axis为0代表纵向合并,为1代表横向合并
矩阵的维度变换
A=np.array([1,1,1])
//当我想要竖着输出A的时候,我需要让他变换一下维度
B=A[:,np.newaxis]代表在列上加一个维度,就能达到输出纵向的1,1,1的效果
B=A[np.newaxis.:]代表在行上加一个维度,1,1,1将会作为二维数组的一行
矩阵的分割
//需要用到split(araray,sectors,axis) 从那个矩阵中 沿着那个轴 分成几块
A=np.arange(12).reshape((3,4))
print(np.split(A,2,axis=1))
//由于split只能平均分配,比如把四列分成1列,两列,或者四列,但是不能分成三列,所以有array_split
达到这个目的,而且参数和split一样
print(np.array_split(A,3,axis=1))
//还有俩函数能达到纵向分割和横向分割
print(np.hsplit(A,3))
print(np.vsplit(A,4))
矩阵的赋值
A=np.array([1,1,1]) //当我想要竖着输出A的时候,我需要让他变换一下维度 B=A[:,np.newaxis]代表在列上加一个维度,就能达到输出纵向的1,1,1的效果 B=A[np.newaxis.:]代表在行上加一个维度,1,1,1将会作为二维数组的一行
矩阵的分割
//需要用到split(araray,sectors,axis) 从那个矩阵中 沿着那个轴 分成几块
A=np.arange(12).reshape((3,4))
print(np.split(A,2,axis=1))
//由于split只能平均分配,比如把四列分成1列,两列,或者四列,但是不能分成三列,所以有array_split
达到这个目的,而且参数和split一样
print(np.array_split(A,3,axis=1))
//还有俩函数能达到纵向分割和横向分割
print(np.hsplit(A,3))
print(np.vsplit(A,4))
矩阵的赋值
//需要用到split(araray,sectors,axis) 从那个矩阵中 沿着那个轴 分成几块 A=np.arange(12).reshape((3,4)) print(np.split(A,2,axis=1)) //由于split只能平均分配,比如把四列分成1列,两列,或者四列,但是不能分成三列,所以有array_split 达到这个目的,而且参数和split一样 print(np.array_split(A,3,axis=1)) //还有俩函数能达到纵向分割和横向分割 print(np.hsplit(A,3)) print(np.vsplit(A,4))
矩阵的赋值
//简单的深拷贝和浅拷贝 a=np.arange(4) b=a c=a 这是浅拷贝,改变a的值b的值也会改变 d=a.copy() 这是深拷贝,改变a的值,d的值不会改变



