python中numpy模块数组
给一个二维的数组,怎么互换它的行或者列?
样例:
[[1 2 3],
[4 5 6],
[7 8 9]]
互换1,2行
[[4 5 6],
[1 2 3],
[7 8 9]]
或者是1,2列呢?
求帮助!
【有帮助请采纳】
下面是切换行的
a = array([[1,2,3],[4,5,6],[7,8,9]])
#法一:数组的类方法copy
a[1],a[2] = a[2],a[1].copy()
#法二:数组的布尔切片
a[1],a[2] = a[2],a[1][True]
#法三:数组的特殊方法
a[[1,2]] = a[[2,1]]
#法四:引入deepcopy模块(不推荐)
#引入新的模块过于麻烦,不方便
#法五:转换成列表来操作(不推荐)
#由于我们用数组计算的初心就是为了加快计算速度,但这个数组与列表之间的转化是很慢的,而且占用大量内存,极力不推荐!
#a[1],a[2] = a[2],a[1][:]不可取!是错误的!
切换列的就是用a.T转置后再用上面的方法后再转置回来
【有帮助请采纳】
a = [[1,2,3],[4,5,6],[7,8,9]]
a.insert(2,a[0])
a.pop(0)
print(a)
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a[[1,0,2]])
# 结果
[[4 5 6]
[1 2 3]
[7 8 9]]
print(a[:,[1,0,2]])
#结果
[[2 1 3]
[5 4 6]
[8 7 9]]