2016-03-09 4 views
0

Я работаю с двумя np.arrays одинаковой длины. Один из них содержит None элементов. Я хотел бы удалить их из этого массива, а также из соответствующих элементов в другом массиве.Удалить NoneType из двух списков

наивности я думал, что это будет делать:

ToFRemove = (None == ListA) # Find None type       

ListA = ListA[not ToFRemove] 
ListB = ListB[not ToFRemove] 

Это работает для поиска других регулярных элементов. Тем не менее, я получаю False как значение ToFRemove, так что это не сработает.

Предполагаю, что я должен написать некоторый итератор, чтобы найти элементы None, как в this answer, но я не знаю как.

ответ

2

Я хотел бы сделать это как этот

np_array[np_array != np.array(None)]

Заявление np_array! = Np.array (None) выводит булево массив. Этот логический массив имел бы «False», где бы ни был элемент «Нет» и True для других. Индексы, соответствующие «True», остаются в результирующем массиве, а те, которые соответствуют «False», удаляются.

Применяя это к вашей проблеме

ToKeep = (ListA != np.array(None)) 
ListA = ListA[ToKeep] 
ListB = ListA[ToKeep] 
Смежные вопросы