मैं एक समस्या है, जिसमें नाव nan
एक numpy.array
में एक list
और nan
में अलग तरह से नियंत्रित किया जाता है जब इन में उपयोग किया जाता डिबग करने के लिए एक कठिन समय हो रही है itertools.groupby
:क्यों समूह NumPy सरणी में सूचियों में Nans itertools.groupby लेकिन नहीं कर सकते
निम्नलिखित सूची और सरणी को देखते हुए:
from itertools import groupby
import numpy as np
lst = [np.nan, np.nan, np.nan, 0.16, 1, 0.16, 0.9999, 0.0001, 0.16, 0.101, np.nan, 0.16]
arr = np.array(lst)
जब मैं सूची सन्निहित nan
रों वर्गीकृत किया है से अधिक पुनरावृति:
>>> for key, group in groupby(lst):
... if np.isnan(key):
... print(key, list(group), type(key))
nan [nan, nan, nan] <class 'float'>
nan [nan] <class 'float'>
लेकिन अगर मैं सरणी का उपयोग यह अलग-अलग समूहों में लगातार nan
रों कहते हैं:
>>> for key, group in groupby(arr):
... if np.isnan(key):
... print(key, list(group), type(key))
nan [nan] <class 'numpy.float64'>
nan [nan] <class 'numpy.float64'>
nan [nan] <class 'numpy.float64'>
nan [nan] <class 'numpy.float64'>
यहां तक कि अगर मैं एक सूची पर वापस सरणी परिवर्तित:
>>> for key, group in groupby(arr.tolist()):
... if np.isnan(key):
... print(key, list(group), type(key))
nan [nan] <class 'float'>
nan [nan] <class 'float'>
nan [nan] <class 'float'>
nan [nan] <class 'float'>
मैं उपयोग कर रहा हूँ:
numpy 1.11.3
python 3.5
मुझे पता है कि आम तौर पर nan != nan
तो ये ऑपरेशन अलग क्यों होते हैं पंख परिणाम? और यह कैसे संभव है कि groupby
nan
एस समूह कर सकते हैं?
हम्म, मुझे आश्चर्य है कि क्या इस सवाल के लिए कहा जाए। :) – Tagc
यहां प्रश्न वास्तव में क्या है: क्यों 'groupby' ने इस असंगत व्यवहार को दिखाया, या इसके आसपास कैसे काम किया? और बाद के मामले में, क्या आप चाहते हैं कि नैन समूहबद्ध हों या नहीं? –
बस अगर कोई और दिलचस्पी लेता है, तो सवाल उठाने के लिए कहा गया था कि क्यों [एक उत्तर] (http://stackoverflow.com/a/41722363/5393381) एक सूची में लागू होने पर काम करता था लेकिन जब लागू नहीं होता 'np.array'। – MSeifert