2016-06-10 6 views
19

कहते हैं अब मैं एक numpy सरणी जो के रूप में परिभाषित किया गया है,numpy array में सभी NaN मान की सूचकांक सूची कैसे प्राप्त करें?

[[1,2,3,4], 
[2,3,NaN,5], 
[NaN,5,2,3]] 

अब मैं एक सूची है कि लापता मूल्यों, जो इस मामले में [(1,2),(2,0)] है के सभी सूचकांकों में शामिल करना चाहते हैं की है।

क्या कोई तरीका है कि मैं ऐसा कर सकता हूं?

उत्तर

36

np.isnan के साथ संयुक्त np.argwhere

x = np.array([[1,2,3,4], 
       [2,3,np.nan,5], 
       [np.nan,5,2,3]]) 
np.argwhere(np.isnan(x)) 

उत्पादन:

array([[1, 2], 
     [2, 0]]) 
7

आप np.where का उपयोग map प्रत्येक परिणाम Nan सरणी के मूल्यों और करने के लिए इसी बूलियन की स्थिति मैच के लिए कर सकते हैं tuples की एक सूची उत्पन्न करने के लिए ।

>>>list(map(tuple, np.where(np.isnan(x)))) 
[(1, 2), (2, 0)]