Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用来自多个二维图像的循环创建三维numpy阵列_Numpy - Fatal编程技术网

使用来自多个二维图像的循环创建三维numpy阵列

使用来自多个二维图像的循环创建三维numpy阵列,numpy,Numpy,我想从许多样本图像中读取,并制作2D numpy数组,其中行“I”对应于第I个样本,列j对应于图像的第j个像素(12*13图像的所有像素都通过156个数字的列表保存) 然而,我正在努力制作2D numpy阵列。上面的“images”数组变成(1800,)数组而不是(11156)。我尝试了许多不同的方法,但没有一种工作正常或有效(制作2D python列表,然后转换为numpy数组是没有效率的,尽管即使是那个解决方案也不起作用) 所以我的问题是,动态创建2D numpy数组的最佳方法是什么?您将n

我想从许多样本图像中读取,并制作2D numpy数组,其中行“I”对应于第I个样本,列j对应于图像的第j个像素(12*13图像的所有像素都通过156个数字的列表保存)

然而,我正在努力制作2D numpy阵列。上面的“images”数组变成(1800,)数组而不是(11156)。我尝试了许多不同的方法,但没有一种工作正常或有效(制作2D python列表,然后转换为numpy数组是没有效率的,尽管即使是那个解决方案也不起作用)


所以我的问题是,动态创建2D numpy数组的最佳方法是什么?

您将numpy数组
图像
视为一个列表。 看一看。但在我的记忆中,最快的方法是将每个图像转换成一个numpy数组,将它们聚合到一个列表中,然后将列表转换成一个数组

import numpy as np
images = list()
for Letter in "ABCDEFGHIJKLMNO":
    im = Image.open("ABCDEFGHIJKLMNO\\16\\"+Letter+".bmp")
    sampleimage = np.array(im.getdata())
    images.append(sampleimage)
images_array = np.array(images)

在您的情况下,生成的数组的大小应该是
[1800,11156]
[111561800]
np。append
很难正确使用,即使这样也很慢。重新阅读
np.append
文档。如果没有
参数,它会使输入变平,从而得到结果。
import numpy as np
images = list()
for Letter in "ABCDEFGHIJKLMNO":
    im = Image.open("ABCDEFGHIJKLMNO\\16\\"+Letter+".bmp")
    sampleimage = np.array(im.getdata())
    images.append(sampleimage)
images_array = np.array(images)