У меня есть список изображений и формы изображения (50,50,3).как преобразовать в numpy.ndarray формы (19929,50,50,3) - PullRequest
0 голосов
/ 08 июля 2019
train_x=[]
val_x=[]
test_x=[]
for image in train_list:
    train_x.append(skimage.data.imread(image))
for image in val_list:
    val_x.append(skimage.data.imread(image))
for image in test_list:
    test_x.append(skimage.data.imread(image)) 

как преобразовать список train_x в ndarray формы (len (train_x), 50,50,3).

Ответы [ 3 ]

1 голос
/ 08 июля 2019

Вы можете использовать numpy.stack():

import numpy as np
arrs = [np.random.randn(10, 11, 3) for i in range(5)]
arr = np.stack(arrs, axis=0)
print(arr.shape)
0 голосов
/ 08 июля 2019

Вы можете предварительно выделить пустой массив и заполнить его элементами train_x (я полагаю, что функция numpy.stack() делает то же самое за сценой):

import numpy as np

train_x = [np.random.randn(50, 50, 3) for _ in range(1000)] #dummy x_train

big_arr = np.empty([len(train_x), 50, 50, 3])
big_arr[:,...] = train_x[:]

В этом случае причина, по которой я выбираю этоСпособ против stack заключается в его гибкости.Может быть невозможно иметь как train_x, так и big_arr в памяти (может вызвать переполнение памяти).Поэтому, если вы обязаны иметь массив в форме (19929,50,50,3) в памяти для обработки, попробуйте сделать это:

big_arr = np.empty([len(train_list), 50, 50, 3])
for i, image in enumerate(train_list):
    big_arr[i,:,:,:] = skimage.data.imread(image)  # read directly from hard disc and fill the array
0 голосов
/ 08 июля 2019
    import numpy as np
    import skimage
    train_x=[]
    val_x=[]
    test_x=[]
    for image in train_list:
        train_x.append(skimage.data.imread(image))

    for image in val_list:
        val_x.append(skimage.data.imread(image))

    for image in test_list:
        test_x.append(skimage.data.imread(image))

    train_x=np.array(train_x)
    val_x=np.array(val_x)
    test_x=np.array(text_x) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...