2d लिस्ट को 2d numpy ऐरे में कैसे कन्वर्ट करें?


85

मैं एक 2 डी सूची की तरह कुछ है

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

और मैं इसे एक 2d numpy सरणी में बदलना चाहता हूं। क्या हम इसे मेमोरी को आवंटित किए बिना कर सकते हैं जैसे

numpy.zeros((3,3))

और फिर इसके लिए मान संचय करना?


@ डोंकोपोटामस, यह मेरे द्वारा की गई गलती थी ... मैं एक सीक्वेंस दे रहा था ... मैं भी यही कर रहा था, लेकिन गलती हो रही थी। के बाद मैं यहाँ से एक ही कोड मिला मैं जाँच की जहाँ संभावना है ... तो यह मदद करता है ... offcourse मैं यहाँ पोस्ट करने से पहले प्रलेखन की जाँच करें ... दोस्ताना अनुस्मारक के लिए धन्यवाद।
शान

जवाबों:


90

बस सूची पास करें np.array:

a = np.array(a)

आप यह सेट करने के लिए भी अवसर ले सकते हैं dtypeयदि डिफ़ॉल्ट वह नहीं है जो आप चाहते हैं।

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

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

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

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

सितंबर 2017 (Ubuntu 16.04 LTS) से धन्यवाद। यह वही है जो मुझे चाहिए था। प्रत्याशित की तुलना में बहुत सरल।
22

1
महत्वपूर्ण उत्तर के लिए धन्यवाद, @compie
iedmrc

2

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

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

प्रत्येक सूची समान लंबाई की है। मैं उपयोग करता हूं

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

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

फिर

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

यहाँ 'एसवी ’क्या है
गोकेन

2

बस निम्नलिखित कोड का उपयोग करें

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


2

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

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

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

aList=[aArray, bArray]

xArray=np.array(aList)

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.