目录
默认第一个为行索引第二个为列索引。
行列索引都是以作为起始数值作为第一列或者第一行。(根据c++数组的知识进行理解)
使用矩阵的分裂和拼接函数逐个进行分解和拼接。法一的执行效率会很低。同样的一个问题需要进行反复的拼接才可以完成。
- import numpy as np
- a=np.arange(20).reshape(4,5)
- b=np.split(a,4,axis=0)
- s=np.vstack((b[2],b[3]))
- s=np.vstack((b[0],s))
- s=np.vstack((b[1],s))
- w=np.split(s,5,axis=1)
- ans=np.hstack((w[3],w[4]))
- ans=np.hstack((w[2],ans))
- ans=np.hstack((w[0],ans))
- ans=np.hstack((w[1],ans))
- print(ans)
直接进行行列互换(按照特定格式)。
数组名[ [交换行1,交换行2 ] ] = 数组名[ [交换行2, 交换行1 ] ]
- import numpy as np
- b=np.arange(20).reshape(5,4)
- b[[0,1]]=b[[1,0]]
- #写完整是这样 b[[0,1],:]=b[[1,0],:]
- print(b)
上述的行进行互换,即b[[0,1]]=b[[1,0]]指的就是将第一行和第二行的元素进行互换。
数组名[ : ,[交换列1,交换列2 ] ] = 数组名[ : ,[交换列2,交换列1] ]
- b=np.arange(20).reshape(5,4)
- # b[[0,1]]=b[[1,0]]
- print(b)
- b[:,[0,1]]=b[:,[1,0]]
- print(b)
上述的列进行互换,即b[:,[0,1]]=b[:,[1,0]]指的就是将第一列和第二列的元素进行互换
np.insert(a,1,[0,0,0,0],0)
第四个参数表示航增加还是列增加(axis=0表示行增加,axis=1表示列增加。)
上述代码表示把[0,0,0,0]插入到a中,插入在第二行。
np.delete(a,0,1) #删除含有0的列
np.append(a, [[1,2,3,4]], 0) #末尾修改
np.where(a==1) #查找含有1的