如何将含8×8 NumPy数组的Python列表转为(8,8,1,64)维度数组?
把64个8×8数组转成(8,8,1,64) NumPy数组的方法
嘿,这事儿不难,我给你拆解成几步来做,保证清晰易懂:
首先,先明确你的输入:一个长度为64的Python列表,每个元素都是8×8的NumPy数组。我们的目标是把它转换成维度为(8,8,1,64)的数组。
具体步骤
导入NumPy库(这一步是基础,别忘啦)
import numpy as np将列表转换为初始NumPy数组
假设你的列表名叫my_list,先把它转成数组:initial_arr = np.array(my_list)这时候
initial_arr的维度是(64, 8, 8)——因为列表里有64个元素,每个元素是8×8,所以第一个维度对应列表长度,后面两个是每个数组的尺寸。调整维度顺序
我们需要把(64,8,8)转换成(8,8,64),这一步用transpose来调换轴的顺序:rearranged_arr = initial_arr.transpose(1, 2, 0)这里的
(1,2,0)表示把原数组的第1个轴(对应8)移到第0位,第2个轴(对应8)移到第1位,原第0个轴(对应64)移到第2位,这样就得到了(8,8,64)的数组。插入新的维度
最后一步,我们需要在第2个位置(索引从0开始)插入一个长度为1的维度,把(8,8,64)变成(8,8,1,64)。有两种常用方法:- 方法一:用
np.expand_dimsfinal_arr = np.expand_dims(rearranged_arr, axis=2) - 方法二:用
np.newaxis切片(更简洁)final_arr = rearranged_arr[..., np.newaxis]
- 方法一:用
一步到位的写法
如果你喜欢简洁,可以把所有步骤合并成一行:
final_arr = np.expand_dims(np.array(my_list).transpose(1,2,0), axis=2)
验证结果
最后别忘了检查一下维度是否正确:
print(final_arr.shape) # 输出应该是 (8, 8, 1, 64)
这样就完美实现你想要的结果啦!
内容的提问来源于stack exchange,提问作者BilginAksoy
相关产品推荐
相关产品推荐

