2017-01-18 1 views
1

У меня есть массивКак получить индекс всех элементов, которые являются NaN в массиве в python?

[  nan,  nan,  nan, 1633.32, 1661.24,  0. ], 
    [  nan,  nan,  nan, 2885.94, 3264.09,  0. ], 
    [ 605.48,  nan, 599.27, 664.47, 670.68,  0. ], 
    [  nan,  nan,  nan, 874.59, 783.86,  0. ], 
    [ 1596.01,  nan, 1469.77, 1731.26, 1514.86,  0. ]] 

есть ли способ узнать индекс (строка, столбец) элементы, которые являются «нан»

+0

Привет, Юхи, что вы попробовали? В чем была ваша проблема? –

+0

@ MarcusMüller Моя проблема заключается в том, чтобы получить строку, индекс столбца из массива, где бы это значение не было «nan»/null, я слежу за тем, что делают другие. Я кулак по пониманию списка: indices = [i для i, x в перечислении (my_list), если x == "nan"] , но поскольку он для списка содержит только индекс столбца, я хотел сделать это на массив, поэтому мне нужен номер строки и столбца. – ash25

+0

'from math import isnan; [(r, c) для r, строка в перечислении (данные) для c, элемент в перечислении (строка), если isnan (item)] ' –

ответ

1

раствора с использованием np.isnan и np.argwhere функции комбинации из numpy модуля:

import numpy as np 

arr = np.array([[  np.NaN,  np.NaN,  np.NaN, 1633.32, 1661.24,  0. ], 
    [  np.NaN,  np.NaN,  np.NaN, 2885.94, 3264.09,  0. ], 
    [ 605.48,  np.NaN, 599.27, 664.47, 670.68,  0. ], 
    [  np.NaN,  np.NaN,  np.NaN, 874.59, 783.86,  0. ], 
    [ 1596.01,  np.NaN, 1469.77, 1731.26, 1514.86,  0. ]]) 

print(np.argwhere(np.isnan(arr))) 

выход:

[[0 0] 
[0 1] 
[0 2] 
[1 0] 
[1 1] 
[1 2] 
[2 1] 
[3 0] 
[3 1] 
[3 2] 
[4 1]] 
+0

@RomanPerekherst Спасибо! – ash25

+0

@ JG25, добро пожаловать ... – RomanPerekhrest

 Смежные вопросы

  • Нет связанных вопросов^_^