NumPy dizisini Python listesine nasıl dönüştürürüm (örneğin [[1,2,3],[4,5,6]]
) ve oldukça hızlı mı yaparım?
NumPy dizisini Python listesine nasıl dönüştürürüm (örneğin [[1,2,3],[4,5,6]]
) ve oldukça hızlı mı yaparım?
Yanıtlar:
Kullanım tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
Bunun, sahip oldukları numpy türünden (örn. Np.int32 veya np.float32) değerleri "en yakın uyumlu Python türüne" (bir listede) dönüştürdüğünü unutmayın. Numpy veri türlerini korumak istiyorsanız, dizinizdeki list () öğesini çağırabilirsiniz ve sonuçta numpy skaler listesi ile karşılaşırsınız . (Bir yorumda belirttiği için Mr_and_Mrs_D'ye teşekkürler.)
myarray.astype(np.int32).tolist()
olsaydınız , sanırım yapmak bir seçenek olurdu ve neyi başarmaya çalıştığınız konusunda açık. (Ve son olarak, list(array_of_type_float32)
denediğimde burada tamsayı vermiyor ... bu yüzden ne istediğini bilmiyorum.)
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']]
Numpy .tolist yöntemi, numpy dizi şekli 2B ise iç içe listeler oluşturur.
düz listeler isteniyorsa, aşağıdaki yöntem işe yarar.
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`
someList = [list(map(int, input().split())) for i in range(N)]
c = np. dizisi ([[1,2,3], [4,5,6]])
list(c.flatten())
tolist
dönüştürürfloats
- bu muhtemelen istenmez. Kullanmaklist(myarray)
bundan muzdarip değildir - neden tercih etmeliyiztolist
?