में डेटा बदलने मान लीजिए मैं निम्नलिखित numpy वेक्टरनिकाला जा रहा है और numpy
[[1, 3., 'John Doe', 'male', 'doc', '25'],
...,
[9, 6., 'Jane Doe', 'female', 'p', '28']]
मैं अपने कार्य डेटा के लिए प्रासंगिक निकालने के लिए की जरूरत है।
numpy और सामान्य रूप में अजगर में एक नौसिखिया होने के नाते, मैं निम्नलिखित तरीके से यह करना होगा:
data = np.array(
[[1, 3., 'John Doe', 'male', 'doc', 25],
[9, 6., 'Jane Doe', 'female', 'p', 28]]
)
data_tr = np.zeros((data.shape[0], 3))
for i in range(0, data.shape[0]):
data_tr[i][0] = data[i, 1]
data_tr[i][1] = 0 if data[i, 3] == 'male' else 1
data_tr[i][2] = data[i, 5]
और मैं निम्नलिखित है एक परिणाम के रूप:
[[ 3., 0., 25.],
[ 6., 1., 28.]]
मैं चाहते हैं क्या यह जानने के लिए कि क्या ऐसा करने के लिए एक अधिक कुशल या क्लीनर तरीका है।
क्या कोई मेरी मदद कर सकता है?
column-indexing
साथ
टिप्पणियों के एक जोड़े - एक 'np.array' एक सन्निहित वस्तु है, इसका मतलब है कि हर तत्व हो गया है वही प्रकार इसलिए 'डेटा' का नतीजा पहले से तारों की एक सूची है क्योंकि आप' नर 'और अन्य तारों को न्यूमेरिका प्रकार पर मार्शल नहीं कर सकते हैं। सूची का उपयोग करने के लिए बेहतर है। – Chinny84
'डेटा' देखें। यह तारों की एक (2,6) सरणी है, मिश्रित संख्या और तार नहीं। दूसरी तरफ 'data_tr' डिफ़ॉल्ट' फ्लोट 'प्रकार है। 'डेटा' से 'data_tr'' numpy' को असाइन करने पर स्ट्रिंग को फ़्लोट में बदलने की कोशिश की जाती है। इस मामले में यह काम करता है। लेकिन अगर आपको कॉलम गलत लगता है तो यह एक त्रुटि दे सकता है। – hpaulj