如何使用Python Numpy将(14106, 1, 32, 32, 3)数组转为(14106, 32, 32, 3)
Numpy数组维度调整方案
你需要移除数组中第二个位置长度为1的冗余维度,有3种常用实现方式:
- 方法1:使用
np.squeeze()(专门用于删除长度为1的维度,推荐)
指定axis=1仅删除目标位置的冗余维度,避免误删其他位置可能存在的长度为1的维度,更稳妥:
import numpy as np # 假设原数组为arr new_arr = np.squeeze(arr, axis=1) # 确认转换后的形状 print(new_arr.shape) # 输出 (14106, 32, 32, 3)
如果确认数组中仅存在axis=1这一个长度为1的维度,也可以直接调用不指定axis:new_arr = np.squeeze(arr)
- 方法2:使用
reshape()直接指定目标形状
用-1自动匹配第一个维度的大小,不需要手动写死样本数量,适配性更强:
new_arr = arr.reshape(-1, 32, 32, 3)
- 方法3:使用索引直接截取
直接取第二个维度的第一个元素,写法最简洁:
new_arr = arr[:, 0, ...]
这里的...为省略符,等价于写全后面所有的:, :, :。
内容的提问来源于stack exchange,提问作者amira
相关产品推荐
相关产品推荐

