(1) 创建一个shape为(5,6)的二维全为0的ndarray对象,然后让第2,3行的第2-4列元素等于1; (2) 使用np.random库创建一个10*10的整型ndarray对象,并打印出最大最小元素; (3) 对第2题中的矩阵,计算最后两列的和; (4) 创建一个长度为10的一维随机数组并排序; (5) 创建一个一维长度为15的随机矩阵和一个32随机矩阵,将前者使用reshape改为5*3的矩阵,与3*2的矩阵,求矩阵积。
时间: 2023-06-02 20:04:35 浏览: 263
抱歉,我无法回答第一个问题。
(1) np.zeros((5,6))
arr = np.zeros((5,6))
arr[1:3,2:5] = 1
print(arr)
(2) arr = np.random.randint(1,100,(10,10))
print(np.min(arr))
print(np.max(arr))
(3) print(np.sum(arr[:,8:]))
Explanation: 取所有行的第9列和第10列,求和
(4) arr = np.random.rand(10)
arr.sort()
print(arr)
(5) arr1 = np.random.rand(15)
arr2 = np.random.rand(32)
arr1 = arr1.reshape((5,3))
arr2 = arr2.reshape((3,2))
print(np.dot(arr1,arr2))
相关问题
口数组变换与数组合并练习 1.包建一个元素为从10到/49的ndarray对象D1: 2.将D1的所有元素位置反转(矩阵转置): 3.使用np.random.randint创建一个10*10的ndarray对象,并分别打印出 最大和最小元素的坐标: 4.创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0: 5.创建一个范围在(0,1)之间的长度为12的等差数列: 6.创建一个长度为10的随机数组并排序: 7.如何将数组a =np. arange( 10) reshapel2-1)和数组b=np.repeat(1, 10).reshape(2-1)水平堆叠?
好的,我理解了你的问题。以下是答案:
1.
```python
import numpy as np
D1 = np.arange(10, 50)
print(D1)
```
2.
```python
import numpy as np
D1 = np.arange(10, 50)
D1 = D1.reshape(4, 10) # 转换为4*10的矩阵
D1 = D1.T # 矩阵转置
print(D1)
```
3.
```python
import numpy as np
D2 = np.random.randint(0, 100, (10, 10))
max_index = np.unravel_index(np.argmax(D2), D2.shape) # 最大值的坐标
min_index = np.unravel_index(np.argmin(D2), D2.shape) # 最小值的坐标
print("最大值坐标:", max_index)
print("最小值坐标:", min_index)
```
4.
```python
import numpy as np
D3 = np.zeros((10, 10))
D3[0, :] = 1
D3[-1, :] = 1
D3[:, 0] = 1
D3[:, -1] = 1
print(D3)
```
5.
```python
import numpy as np
D4 = np.linspace(0, 1, 12)
print(D4)
```
6.
```python
import numpy as np
D5 = np.random.rand(10)
D5.sort()
print(D5)
```
7.
```python
import numpy as np
a = np.arange(10).reshape(2, -1)
b = np.repeat(1, 10).reshape(2, -1)
c = np.hstack((a, b)) # 水平堆叠
print(c)
```
创建两个数组对象,分别为全0的ndarray1.shape(2,3,5) 和由0开始加一的数组ndarray2.shape(2,2,5)并将ndarray1对象和ndarray2对象在纵向方向进行堆叠后进行输出;
好的,我来为您解决这个问题。以下是代码实现:
```python
import numpy as np
# 创建全0的ndarray1
ndarray1 = np.zeros((2, 3, 5))
print("ndarray1:\n", ndarray1)
# 创建由0开始加一的数组ndarray2
ndarray2 = np.zeros((2, 2, 5))
for i in range(2):
for j in range(2):
for k in range(5):
ndarray2[i][j][k] = i*2*5 + j*5 + k + 1
print("ndarray2:\n", ndarray2)
# 在纵向方向进行堆叠
result = np.concatenate((ndarray1, ndarray2), axis=1)
print("result:\n", result)
```
输出结果为:
```
ndarray1:
[[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]]
ndarray2:
[[[1. 2. 3. 4. 5.]
[6. 7. 8. 9. 10.]]
[[11. 12. 13. 14. 15.]
[16. 17. 18. 19. 20.]]]
result:
[[[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 1. 2. 3. 4. 5.]
[ 6. 7. 8. 9. 10.]]
[[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[11. 12. 13. 14. 15.]
[16. 17. 18. 19. 20.]]]
```
其中,ndarray1 是一个全0的 3 维数组,shape 为 (2, 3, 5);ndarray2 是一个由0开始加一的数组,shape 为 (2, 2, 5);通过 np.concatenate() 函数在纵向方向进行堆叠,得到的结果为 result,shape 为 (2, 5, 5)。
阅读全文