Как добавить ND NUMPY массивы в (N + 1) D NUMPY массив через цикл? - PullRequest
0 голосов
/ 27 ноября 2018

Например, мне нужно 30x30 массивов, созданных из изображений для подачи в нейронную сеть.Если у меня есть каталог изображений для прогнозирования, я должен иметь возможность циклически проходить по каталогу, получать данные изображений и создавать массив np формы (n, 30, 30). Это мой текущий метод, я намерен изменить форму каждой строки перед подачейк модели

def get_image_vectors(path):
    img_list=os.listdir(path)
    print(img_list)
    X=np.empty((900,))
    for img_file in img_list:
        img= Image.open(os.path.join(path,img_file))
        img_grey= img.convert("L")
        resized = img_grey.resize((30,30))
        flattened = np.array(resized.getdata())
        # print(flattened.shape)
        X=np.vstack((X,flattened))
        print(img_file,'=>',X.shape)
    return X[1:,:]

1 Ответ

0 голосов
/ 27 ноября 2018

Вместо добавления к существующему массиву, вероятно, будет лучше сначала использовать список, добавлять к нему и преобразовывать в массив в конце.тем самым сохраняя множество избыточных модификаций массивов np.

Вот пример игрушки:

import numpy as np

def get_image_vectors():
    X= [] #Create empty list
    for i in range(10):
        flattened = np.zeros(900)
        X.append(flattened) #Append some np array to it
    return np.array(X) #Create array from the list

С результатом:

array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...