我有大約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