कैसे मैं एक परिवर्तित NumPy एक अजगर सूची (उदाहरण के लिए करने के लिए सरणी [[1,2,3],[4,5,6]]
), और यह काफी तेजी से करते हैं?
कैसे मैं एक परिवर्तित NumPy एक अजगर सूची (उदाहरण के लिए करने के लिए सरणी [[1,2,3],[4,5,6]]
), और यह काफी तेजी से करते हैं?
जवाबों:
उपयोग करें tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
ध्यान दें कि यह उन मूल्यों को धर्मान्तरित करता है जो उनके पास हो सकते हैं (जैसे np.int32 या np.float32) "निकटतम संगत पायथन प्रकार" (एक सूची में)। यदि आप संख्यात्मक डेटा प्रकारों को संरक्षित करना चाहते हैं, तो आप इसके बजाय अपने सरणी पर सूची () को कॉल कर सकते हैं, और आप खस्ता खोपड़ी की सूची के साथ समाप्त होंगे । (टिप्पणी में इसे इंगित करने के लिए Mr_and_Mrs_D को धन्यवाद।)
myarray.astype(np.int32).tolist()
करना एक विकल्प होगा, और जो आप पूरा करने की कोशिश कर रहे हैं उसके बारे में स्पष्ट है। (और अंत में, list(array_of_type_float32)
पूर्णांक यहां नहीं देते हैं जब मैंने इसे आज़माया था ... इसलिए मुझे नहीं पता कि आप क्या पूछ रहे हैं।)
float32_array = np.array([0.51764709], np.float32); print(float32_array.tolist()); print(list(float32_array))
np.array([[0, 'one'], ['two', 3]]).tolist() -> [['0', 'one'], ['two', '3']]
यदि खसरा सरणी आकार 2D है, तो numpy .tolist विधि नेस्टेड सूचियों का निर्माण करती है।
यदि फ्लैट सूची वांछित है, तो नीचे दी गई विधि काम करती है।
import numpy as np
from itertools import chain
a = [1,2,3,4,5,6,7,8,9]
print type(a), len(a), a
npa = np.asarray(a)
print type(npa), npa.shape, "\n", npa
npa = npa.reshape((3, 3))
print type(npa), npa.shape, "\n", npa
a = list(chain.from_iterable(npa))
print type(a), len(a), a`
c = np.array ([[1,2,3], [4,5,6]])
list(c.flatten())
tolist
तो इसेfloats
s में बदल देंगे - यह संभव नहीं है। का उपयोग करनेlist(myarray)
से यह पीड़ित नहीं है - हमें क्यों पसंद करना चाहिएtolist
?