Python基本功numpy2

Python基本功numpy2,第1张

索引

索引有两种形式,第一种就是类似于在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.arange(4)

b=a
c=a
这是浅拷贝,改变a的值b的值也会改变

d=a.copy()
这是深拷贝,改变a的值,d的值不会改变

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1352931.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-14
下一篇2022-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存