You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将存储72×72图像的(100,) numpy数组重塑为堆叠形式

嘿,这个需求我经常碰到,numpy里有好几种简单的方式能帮你把这个一维数组转成三维的堆叠数组,我给你分享几个最实用的方法:

方法1:用numpy.stack()直接堆叠

这是最直观的方式,毕竟你本来就是要把一个个(72,72)的图像数组沿着第一个维度堆叠起来。直接调用stack函数就行,指定axis=0(这也是默认值,其实可以省略):

import numpy as np
# 假设你的images是已存在的(100,)数组
stacked_images = np.stack(images, axis=0)
print(stacked_images.shape)  # 输出:(100, 72, 72)

这个方法不管原始数组的内存布局如何,都能可靠生成你想要的三维数组。

方法2:用numpy.array()直接转换

因为你的images本身就是一个包含形状统一的numpy数组的一维数组,直接把它传给np.array()就能自动帮你转换成三维结构:

stacked_images = np.array(images)
print(stacked_images.shape)  # 同样输出:(100, 72, 72)

这个写法最简洁,适合这种所有元素形状完全一致的场景。

方法3:用numpy.reshape()快速调整形状

如果你的原始数组在内存中是连续存储的,reshape会是最高效的方式——毕竟它只是调整了数组的“视图”,没有复制数据。只要总元素数匹配(1007272 = 100*(72*72)),就可以这么写:

stacked_images = images.reshape(100, 72, 72)
print(stacked_images.shape)  # 输出:(100, 72, 72)

不过要注意:如果原始数组的内存不是连续的,reshape会自动生成一个数据副本,结果依然正确,但效率会稍低一点。

小建议

如果不确定哪种方法更适合你的场景,优先选np.stack()或者np.array(),它们的兼容性更好,不容易踩内存布局的坑。

内容的提问来源于stack exchange,提问作者John Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:59:37