2017-01-18 4 views
1

Iが配列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

こんにちはジュヒ、何を試しましたか?あなたの問題は何でしたか? –

+0

@MarcusMüller私の問題は、値が "nan"/nullであれば、配列から行、列インデックスを取得することです。私はリストの理解の中でカム: indices = [私は、xは列挙する(my_list)x == "nan"] しかし、それはリストのためだけの列のインデックスを与えているので、私はそれをしたい配列なので、私は行と列の両方のインデックス番号が必要です。 – ash25

+0

'from math import isnan; [(r、c)r、列挙する行(c)、列挙する項目(行)ifnan(item)] –

答えて

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

関連する問題