2.如何交换数组np.arange(9).reshape(3,3)中的第1列和第2列(可参考copy()函数)
时间: 2024-02-23 21:01:18 浏览: 116
探索 NumPy 的维度变换:np.newaxis 与 reshape 的奥秘
您可以使用NumPy库中的copy()函数和切片操作来交换数组中的列。以下是交换第1列和第2列的代码:
```python
import numpy as np
# 创建数组
arr = np.arange(9).reshape(3,3)
print("原始数组:\n", arr)
# 复制第1列到临时数组
temp = arr[:, 1].copy()
# 将第2列复制到第1列
arr[:, 1] = arr[:, 2]
# 将临时数组中的数据复制到第2列
arr[:, 2] = temp
print("交换后的数组:\n", arr)
```
输出结果为:
```
原始数组:
[[0 1 2]
[3 4 5]
[6 7 8]]
交换后的数组:
[[0 2 1]
[3 5 4]
[6 8 7]]
```
以上代码中,我们首先使用切片操作复制第1列的数据到一个临时数组中。然后将第2列的数据复制到第1列中,最后将临时数组中的数据复制到第2列中,即完成了列的交换。需要注意的是,为了避免对原始数组的影响,我们使用了copy()函数来复制第1列的数据到临时数组中。
阅读全文