2015-01-05 3 views
9

के साथ एक NumPy पूर्णांक सरणी में शून्य की जगह मैं नीचे एक अजगर पटकथा लिखी:नेन

import numpy as np 

arr = np.arange(6).reshape(2, 3) 
arr[arr==0]=['nan'] 
print arr 

लेकिन मैं यह त्रुटि आई:

Traceback (most recent call last): 
    File "C:\Users\Desktop\test.py", line 4, in <module> 
    arr[arr==0]=['nan'] 
ValueError: invalid literal for long() with base 10: 'nan' 
[Finished in 0.2s with exit code 1] 

नेन के साथ एक NumPy सरणी में शून्य को बदलने के लिए कैसे ? युक्त यह भी इस डेटाप्रकार (या complex या object डेटाप्रकार) होना चाहिए ताकि आप arr कास्ट करने के लिए इससे पहले कि आप इस मूल्य निर्दिष्ट करने के लिए प्रयास की आवश्यकता हो सकती सरणियों:

+0

की संभावित डुप्लिकेट [Numpy - NaN साथ एक नंबर की जगह] (http://stackoverflow.com/questions/6701714/numpy-replace-a-number-with-nan) – trblnc

उत्तर

18

np.nan टाइप float है।

त्रुटि उत्पन्न होती है क्योंकि स्ट्रिंग मान 'nan'arr के प्रकार से मेल खाने के लिए एक पूर्णांक प्रकार में परिवर्तित नहीं किया जा सकता है।

>>> arr = arr.astype('float') 
>>> arr[arr == 0] = 'nan' # or use np.nan 
>>> arr 
array([[ nan, 1., 2.], 
     [ 3., 4., 5.]]) 
संबंधित मुद्दे