पर कॉलम नाम जोड़ें, मैं एक numpy ndarray में कॉलम नाम जोड़ने की कोशिश कर रहा हूं, फिर उनके नाम से कॉलम का चयन करें। लेकिन यह काम नहीं करता है। मैं यह नहीं बता सकता कि समस्या तब होती है जब मैं नाम जोड़ता हूं, या बाद में जब मैं उन्हें कॉल करने का प्रयास करता हूं।प्रोग्रामेटिक रूप से numpy ndarray
मेरा कोड यहां है।
print len(csv_names)
>> 108
print data.shape
>> (1652, 108)
"प्रिंट data.dtype.names" भी अपेक्षित आउटपुट देता है:
data = np.genfromtxt(csv_file, delimiter=',', dtype=np.float, skip_header=1)
#Add headers
csv_names = [ s.strip('"') for s in file(csv_file,'r').readline().strip().split(',')]
data = data.astype(np.dtype([(n, 'float64') for n in csv_names]))
आयाम आधारित निदान मैं क्या उम्मीद से मेल खाते हैं।
लेकिन जब मैं अपने क्षेत्र के नाम से कॉलम कॉल करना शुरू करता हूं, तो खराब चीजें होती हैं। "कॉलम" अभी भी 108 कॉलम के साथ एक सरणी
print data["EDUC"].shape
>> (1652, 108)
है ... ... और इसे और अधिक लापता मूल्यों को रोकने के लिए की तुलना में वहाँ डेटा सेट में पंक्तियों हैं प्रकट होता है।
print np.sum(np.isnan(data["EDUC"]))
>> 27976
कोई विचार क्या गलत हो रहा है? हेडर जोड़ना एक मामूली ऑपरेशन होना चाहिए, लेकिन मैं घंटों के लिए इस बग से लड़ रहा हूं। मदद!
धन्यवाद - यह अवधारणाओं को स्पष्ट रूप से स्पष्ट करने में मदद करता है। लेकिन मुझे अभी भी इस विशेष मामले के बारे में कुछ सवाल हैं। यहां, मेरे सभी कॉलम फ़्लोट हैं, और मैं बहुत सारे मैट्रिक्स गुणा करने जा रहा हूं, इसलिए मैं 2 डी-सरणी संरचना रखना चाहता हूं - संरचित सरणी की आवश्यकता नहीं है। मैं बस इतना करना चाहता हूं कि फील्ड नाम जोड़ें। क्या यह संभव है? – Abe
एनबी: genfromtxt numpy के संरचित tuple प्रारूप में csv आयात करता है। मैंने सरणी प्रारूप में फील्ड नाम आयात करने के बारे में सोचने के बारे में सोचने की कोशिश की, और कुछ भी काम नहीं किया। – Abe
@ एबे: आप अभी भी मैट्रिक्स गुणात्मक प्रदर्शन कर सकते हैं: 'व्यू()' * * * डेटा को देखने का एक और तरीका है। तो, आप एक ही समय में मूल डेटा सरणी और 'व्यू()' एड सरणी दोनों के साथ काम कर सकते हैं (पहला सरणी 2 डी है, दूसरा 1 डी है और संरचित)। – EOL