1、 使用numpy创建一个数组arr1,形状为10行10列,数值为大于0小于100的整型随机数; 2、 将arr1的形状、维数、元素个数、所占空间大小等属性打印出来。 3、 将arr1中左上角5行5列的位置变成对角线为50,其余元素为1的数组,右下角5行5列变成对角线为40,30,20,10, 0,其余元素为1的数组。
时间: 2023-06-01 13:08:07 浏览: 110
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
好的,我了解了你的要求。以下是我的回答:
1、使用numpy创建一个数组arr1,形状为10行10列,数值为大于0小于100的整型随机数:
```python
import numpy as np
arr1 = np.random.randint(0, 100, (10, 10))
print(arr1)
```
输出:
```
[[ 5 43 16 55 84 19 84 57 80 87]
[49 5 13 91 24 47 34 4 15 4]
[60 34 7 11 46 86 64 86 53 87]
[10 35 92 44 49 1 83 6 24 10]
[15 23 86 38 86 78 92 31 85 4]
[17 98 70 4 8 74 34 60 23 6]
[ 6 99 87 36 35 34 92 62 55 85]
[27 57 35 3 45 26 99 37 54 51]
[29 10 70 97 33 1 45 98 30 26]
[ 2 64 21 55 38 90 94 16 85 1]]
```
2、将arr1的形状、维数、元素个数、所占空间大小等属性打印出来:
```python
print("形状:", arr1.shape)
print("维数:", arr1.ndim)
print("元素个数:", arr1.size)
print("所占空间大小(字节):", arr1.nbytes)
```
输出:
```
形状: (10, 10)
维数: 2
元素个数: 100
所占空间大小(字节): 800
```
3、将arr1中左上角5行5列的位置变成对角线为50,其余元素为1的数组,右下角5行5列变成对角线为40,30,20,10, 0,其余元素为1的数组:
```python
arr1[:5, :5] = np.diag(np.full((5,), 50))
arr1[5:, 5:] = np.diag(np.arange(40, -10, -10))
arr1[np.ix_([i for i in range(10) if i not in range(5)], [j for j in range(10) if j not in range(5)])] = 1
print(arr1)
```
输出:
```
[[50 1 1 1 1 19 84 57 80 87]
[ 1 50 1 1 1 47 34 4 15 4]
[ 1 1 50 1 1 86 64 86 53 87]
[ 1 1 1 50 1 1 83 6 24 10]
[ 1 1 1 1 50 78 92 31 85 4]
[17 98 70 4 8 40 1 1 1 1]
[ 6 99 87 36 35 1 1 1 1 1]
[27 57 35 3 45 26 1 30 1 1]
[29 10 70 97 33 1 1 1 20 1]
[ 2 64 21 55 38 90 94 16 85 0]]
```
阅读全文