gpt4 book ai didi

Python2.7 (numpy) 将 3-d numpy 数组附加到空数组时保持数组的形状

转载 作者:行者123 更新时间:2023-11-30 22:45:45 25 4
gpt4 key购买 nike

我正在尝试创建一个空的 numpy 数组,并保存从设备获取的所有图像。这些图像以形状 (240,320,3) 的 numpy 数组形式出现。创建一个空数组来存储这些图像似乎是正确的做法。但是,当我尝试附加时,出现此错误:

ValueError: all the input arrays must have same number of dimensions

代码如下:

    import numpy as np

# will be appending many images of size (240,320,3)
images = np.empty((0,240,320,3),dtype='uint8')

# filler image to append
image = np.ones((240,320,3),dtype='uint8') * 255

images = np.append(images,image,axis=0)

我需要将许多图像附加到该数组中,因此在附加 100 后,如果正确完成,图像数组的形状应为 (100,240,320,3) 形状.

最佳答案

np.append 更好的是:

images = np.empty((100,240,320,3),dtype='uint8')
for i in range(100):
image = ....
images[i,...] = image

alist = []
for i in range(100):
image = ....
alist.append(image)
images = np.array(alist)
# or images = np.stack(alist, axis=0) for more control

np.append只是np.concatenate的一个掩护。所以每次循环都会生成一个新数组。当您添加第 100 个图像时,您已经复制了第一个图像 100 次! np.append 的另一个缺点是您必须调整 image 的尺寸,这是一个常见的错误来源。另一个常见错误是初始“空”数组形状错误。

关于Python2.7 (numpy) 将 3-d numpy 数组附加到空数组时保持数组的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com