2011-10-10 20 views
53

मैं2 डी सूची को 2 डी numpy सरणी में कैसे परिवर्तित करें?

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

की तरह एक 2 डी सूची कुछ है और मैं इसे एक 2d numpy सरणी के लिए कनवर्ट करना चाहते हैं। क्या हम

numpy.zeros((3,3)) 
numpy.zeros((3,3)) 

और उसके बाद मानों को संग्रहीत किए बिना स्मृति को आवंटित किए बिना कर सकते हैं?

+0

@ डोंकोपोटामस, यह मेरे द्वारा एक गलती थी ... मैं अनुक्रम दे रहा था ... मैं वही कर रहा था लेकिन त्रुटि प्राप्त कर रहा था। मुझे यहां से एक ही कोड मिला है, मैंने जांच की है कि जांच कहां है ... तो यह मदद करता है ... मैं यहां पोस्ट करने से पहले दस्तावेज़ीकरण की जांच करता हूं ... दोस्ताना अनुस्मारक के लिए धन्यवाद। – Shan

उत्तर

63

बस np.array को सूची पारित:

a = np.array(a) 

यदि डिफ़ॉल्ट नहीं है कि तुम क्या इच्छा तुम भी dtype सेट करने का अवसर ले सकते हैं।

a = np.array(a, dtype=...) 
+31

यह समाधान काम नहीं करता है। आपको अजगर सूचियों की एक सुस्त सरणी मिल जाएगी। – user1816847

+16

@ user1816847 यह तब होता है जब 'उप' सूचियां लंबाई में भिन्न होती हैं (उदाहरण: [[1,2], [1,2], [1,2,3]]। यह प्रश्न में दिए गए उदाहरण के साथ काम करता है – compie

+1

यदि उप-सरणी में समान लंबाई नहीं है, तो यह समाधान आपको केवल सूचियों की एक संख्यात्मक सरणी देगा (यानी आंतरिक सूचियों को numpy arrays में परिवर्तित नहीं किया जाएगा) जो पूरी तरह से समझ में आता है क्योंकि आपके पास नहीं हो सकता परिवर्तनीय द्वितीय आयाम के साथ 2 डी सरणी (मैट्रिक्स)। – AHA

1

मैं प्रपत्र

XVals1 = [.........] 
XVals2 = [.........] 

प्रत्येक सूची समान लंबाई की है में एक अजगर फ़ाइल को निर्यात बड़े डेटा सेट का उपयोग कर रहा हूँ। मैं

>>> a1 = np.array(SV.XVals1) 

>>> a2 = np.array(SV.XVals2) 

का उपयोग तब

>>> A = np.matrix([a1,a2]) 
0

np.array() भी क्या unutbu ऊपर कहा से अधिक शक्तिशाली है। आप भी इसे इस्तेमाल कर सकते हैं एक उच्च आयाम सरणी एनपी सरणियों की एक सूची कन्वर्ट करने के लिए, निम्नलिखित एक सरल उदाहरण है:

aArray=np.array([1,1,1]) 

bArray=np.array([2,2,2]) 

aList=[aArray, bArray] 

xArray=np.array(aList) 

xArray की आकृति है (2,3), यह एक मानक एनपी सरणी है। यह ऑपरेशन लूप प्रोग्रामिंग से बचाता है।

1

सिर्फ कोड

c = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
matrix([[1, 2, 3], 
    [4, 5, 6], 
    [7, 8, 9]]) 

तो निम्न का उपयोग कर यह आप

दे देंगे

आप निम्नलिखित कोड का उपयोग कर

c.shape

c.ndim द्वारा आकार और मैट्रिक्स के आयाम की जांच कर सकते

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