Bagaimana cara mengonversi array NumPy ke Daftar Python (misalnya [[1,2,3],[4,5,6]]
), dan melakukannya dengan cukup cepat?
Bagaimana cara mengonversi array NumPy ke Daftar Python (misalnya [[1,2,3],[4,5,6]]
), dan melakukannya dengan cukup cepat?
Jawaban:
Gunakan tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
Perhatikan bahwa ini mengonversi nilai dari tipe numpy apa pun yang mungkin mereka miliki (mis. Np.int32 atau np.float32) ke "tipe Python kompatibel terdekat" (dalam daftar). Jika Anda ingin mempertahankan tipe data numpy, Anda bisa memanggil list () pada array Anda, dan Anda akan berakhir dengan daftar skalar numpy . (Terima kasih kepada Mr_and_Mrs_D karena menunjukkannya dalam komentar.)
myarray.astype(np.int32).tolist()
akan menjadi pilihan, dan eksplisit tentang apa yang Anda coba capai. (Dan terakhir, list(array_of_type_float32)
tidak memberikan bilangan bulat di sini ketika saya mencobanya ... jadi saya tidak tahu apa yang Anda tanyakan.)
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']]
Metode .tol numpy menghasilkan daftar bersarang jika bentuk array numpy adalah 2D.
jika daftar datar diinginkan, metode di bawah ini berfungsi.
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.array ([[1,2,3], [4,5,6]])
list(c.flatten())
tolist
akan mengubahnya menjadifloats
s - itu mungkin tidak diinginkan. Menggunakanlist(myarray)
tidak menderita karena ini - mengapa kita lebih sukatolist
?