Как преобразовать список в массив, когда список имеет пустой массив - PullRequest
0 голосов
/ 11 октября 2018

У меня есть список

A = [np.array([-25.2]), np.array([20.2]), np.array([15.3]), 
     np.array([]), np.array([]), np.array([-17.5]), np.array([19.3])]

Как видите, в списке есть пустые массивы.Когда я использую:

A1 = np.array(A)

, это делает его объектом, который я не могу открыть в шпионе.И если я использую:

A2 = np.concatenate(A1).astype(None)

, это делает его массивом, но отменяет пустой массив.Как мне преобразовать его в обычный массив, сохранив также пустой массив.

1 Ответ

0 голосов
/ 11 октября 2018

Это зависит от того, что вы хотите иметь вместо пустых массивов.Массив numpy должен иметь тот же тип, поэтому вы не можете просто иметь пустой.Вы можете заполнить NaN или нулями и т. Д.

Кроме того, у вас нет выбора, кроме как циклически проходить по массиву.

k = [None] * len(a)
for i,x in enumerate(a):
    if len(x) == 0:
        k[i] = np.nan
    else:
        k[i] = x

a = np.asarray(k, dtype=float)

Я предлагаю вам взглянуть на то, что генерирует ваш aмассив в первую очередь и исправить это, чтобы у вас не было пустых массивов.

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