2016-01-22 10 views
12

में 'अमान्य मान less_equal में आई' हो सकता है मैं एक RuntimeWarningक्या का कारण numpy

RuntimeWarning: invalid value encountered in less_equal 

मेरा कोड की इस पंक्ति द्वारा उत्पन्न अनुभव:

center_dists[j] <= center_dists[i] 

दोनों center_dists[j] और center_dists[i] हैं numpy arrays

इस चेतावनी का कारण क्या हो सकता है?

+0

बराबर लंबाई के numpy arrays हैं? – wpercy

उत्तर

12

यह np.nan की वजह से कहीं भी इनपुट में शामिल होने की संभावना है। यह का एक उदाहरण नीचे दिखाया गया है -

In [1]: A = np.array([4, 2, 1]) 

In [2]: B = np.array([2, 2, np.nan]) 

In [3]: A<=B 
RuntimeWarning: invalid value encountered in less_equal 
Out[3]: array([False, True, False], dtype=bool) 

उन सभी तुलना के लिए np.nan शामिल है, यह उत्पादन False होगा। आइए broadcasted तुलना के लिए इसकी पुष्टि करें। यहां एक नमूना है -

In [1]: A = np.array([4, 2, 1]) 

In [2]: B = np.array([2, 2, np.nan]) 

In [3]: A[:,None] <= B 
RuntimeWarning: invalid value encountered in less_equal 
Out[3]: 
array([[False, False, False], 
     [ True, True, False], 
     [ True, True, False]], dtype=bool) 

उत्पादन जो B में तीसरा तत्व np.nan को शामिल तुलना से मेल खाती है में तीसरे स्तंभ नोटिस कृपया और कहा कि सभी False मूल्यों में परिणाम है।

+0

मैं रनटाइमर्निंग को प्रिंट करने से कैसे बच सकता हूं? मैं बहुत तुलना कर रहा हूं जिसमें नैन है, इसलिए मैं उन्हें सभी प्रिंट नहीं करना चाहता हूं .... – LWZ

+0

@LWZ आप रनटाइम चेतावनी मुद्रित नहीं करना चाहते हैं या आप यह बताना चाहते हैं कि NaNs की तुलना करने के कारण कौन सी तुलना थी ? – Divakar

+0

मैं रनटाइम चेतावनी मुद्रित नहीं करना चाहता हूं। – LWZ

संबंधित मुद्दे