2017-01-18 65 views
1

我有一個數組如何在python中獲取數組中所有NaN元素的索引?

[  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. ]] 

是否有任何方式使用來自numpy模塊np.isnannp.argwhere功能組合知道哪些是「南」的元素

+0

嗨Juhi,你嘗試了什麼?你的問題是什麼? –

+0

@MarcusMüller我的問題是從數組中獲取行,列索引,無論它的值是「nan」/ null,我一直在追蹤別人正在做什麼。我在列表中理解: indices = [i for i,x in enumerate(my_list)if x ==「nan」] 但是因爲列表只給出列索引,所以我想在數組,所以我需要行和列索引號。 – ash25

+0

'從數學導入isnan; [(r,c)爲r,枚舉(數據)中的行爲c,枚舉(行)中的項目爲isnan(項目)]' –

回答

1

將溶液的索引(行,列):

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

相關問題