创建一个np.arange(15)的数组,转换成三维数组,筛选出里面大于7的元素和小于3的元素,并生成新的数组,输出新的数组,并验证新获得的数组是副本还是视图。
时间: 2024-04-30 07:23:32 浏览: 51
```python
import numpy as np
# 创建一维数组
arr = np.arange(15)
print("一维数组:")
print(arr)
# 转换成三维数组
arr_3d = arr.reshape(3, 5)
print("三维数组:")
print(arr_3d)
# 筛选出大于7和小于3的元素
new_arr = arr[(arr > 7) | (arr < 3)]
print("新数组:")
print(new_arr)
# 验证新数组是副本还是视图
print("新数组是否为副本:", new_arr.flags.owndata)
print("原数组是否为副本:", arr.flags.owndata)
```
输出结果:
```
一维数组:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
三维数组:
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
新数组:
[ 0 1 2 8 9 10 11 12 13 14]
新数组是否为副本: True
原数组是否为副本: True
```
可以看到,新数组是原数组的副本,因为`new_arr.flags.owndata`和`arr.flags.owndata`都是True。
相关问题
创建一个np.arange(15)的数组,转换成三维数组,筛选出里面大于7的元素和小于3的元素,并生成新的数组,输出新的数组,并验证新获得的数组是副本还是视图。
```python
import numpy as np
arr = np.arange(15)
arr_3d = arr.reshape((5,3))
new_arr = arr_3d[(arr_3d > 7) | (arr_3d < 3)]
print(new_arr)
print(new_arr.base is None) # 输出True,说明new_arr是副本
```
输出结果为:
```
[ 0 1 2 8 9 10 11 12 13 14]
True
```
阅读全文