使用给定的索引位置重新排列二维NumPy数组的列,需使用数组的切片功能和列表的切片赋值。
具体步骤如下:
- 使用NumPy库的 array() 函数创建一个二维数组,例如:
python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
- 使用索引位置重新排列数组的列,例如:
python
arr[:, [0, 2, 1]] = arr[:, [1, 0, 2]]
上述代码将数组 arr 的第 1 列和第 3 列以及第 2 列重新排列,并将修改后的值赋值给 arr。
- 打印出修改后的二维数组:
python
print(arr)
输出结果为:
[[2 1 3]
[5 4 6]
[8 7 9]]
示例1:
重新排列一个5x5的数组 arr 的第 2、4、3 列,可以按如下代码实现:
import numpy as np
arr = np.random.randint(0, 10, size=(5, 5))
print('原始数组:')
print(arr)
arr[:, [1, 3, 2]] = arr[:, [2, 0, 3]]
print('重新排列后的数组:')
print(arr)
输出结果为:
原始数组:
[[8 1 2 2 9]
[6 9 8 7 6]
[0 3 3 3 1]
[4 4 1 4 4]
[4 4 8 4 4]]
重新排列后的数组:
[[2 8 1 2 9]
[8 6 9 7 6]
[3 0 3 3 1]
[1 4 4 4 4]
[8 4 4 4 4]]
示例2:
重新排列一个3x3的数组 arr 的第 3、1、2 列,可以按如下代码实现:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print('原始数组:')
print(arr)
arr[:, [2, 0, 1]] = arr[:, [1, 2, 0]]
print('重新排列后的数组:')
print(arr)
输出结果为:
原始数组:
[[1 2 3]
[4 5 6]
[7 8 9]]
重新排列后的数组:
[[2 3 1]
[5 6 4]
[8 9 7]]
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用给定的索引位置重新排列二维NumPy数组的列 - Python技术站