我有大约150,000个图像,我想要加载一个形状为[index][y][x][channel]
的numpy数组。目前,我这样做:如何在4D numpy数组中快速放置很多2D numpy数组?
images = numpy.zeros((len(data), 32, 32, 1))
for i, fname in enumerate(data):
img = scipy.ndimage.imread(fname, flatten=False, mode='L')
img = img.reshape((1, img.shape[0], img.shape[1], 1))
for y in range(32):
for x in range(32):
images[i][y][x][0] = img[0][y][x][0]
这样的作品,但我认为必须有一个比遍历元素更好的解决方案。我可以摆脱重塑,但这仍然会留下两个嵌套的for-loops。
什么是达到相同的最快方式images
4D阵列,有150,000图像需要加载到它?
由于'(x,y,1)'不会广播到'(x,y)',所以不能确定这将适用于'flatten = False'。不是'images [i] = scipy.ndimage.imread(fname,flatten = False,mode ='L')'够了吗? – Eric
@Eric好问题,我认为['mode ='L''](http://pillow.readthedocs.io/en/3.4.x/handbook/concepts.html#modes)只是定义了“位”灰度(8位),但会返回一个二维数组。 – MSeifert