将21个将21个(100,64,64)的numpy数组存储在一个(21,100,64,64)的numpy数组中并将这个(21,100,64,64)转化为(21,1,64,64,100)的numpy数组
时间: 2024-04-28 22:19:48 浏览: 128
将数据转换成数组
好的,我理解了你的问题。以下是代码实现:
```python
import numpy as np
# 创建21个(100,64,64)的数组
arr_list = []
for i in range(21):
arr_list.append(np.random.rand(100, 64, 64))
# 将21个数组存储在一个(21,100,64,64)的数组中
arr_4d = np.stack(arr_list, axis=0)
# 将(21,100,64,64)转化为(21,1,64,64,100)
arr_5d = np.transpose(arr_4d, (0, 3, 2, 1)).reshape(21, 1, 64, 64, 100)
```
首先,我们创建了21个随机的(100, 64, 64)的numpy数组,并将它们存储在一个列表中。接着,我们使用`np.stack()`将这些数组沿着第0个维度拼接起来,得到一个(21, 100, 64, 64)的数组。最后,我们使用`np.transpose()`将第1个维度和第4个维度交换,然后使用`reshape()`将数组形状改为(21, 1, 64, 64, 100)。这样就完成了题目要求的转换。
阅读全文