Bagaimana cara mengonversi array NumPy ke Daftar Python (misalnya [[1,2,3],[4,5,6]]
), dan melakukannya dengan cukup cepat?
298
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.)
tolist
akan mengubahnya menjadifloats
s - itu mungkin tidak diinginkan. Menggunakanlist(myarray)
tidak menderita karena ini - mengapa kita lebih sukatolist
?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.
sumber
tolist()
berfungsi dengan baik bahkan jika menemukan array bersarang, katakanlah sebuah pandaDataFrame
;sumber
someList = [list(map(int, input().split())) for i in range(N)]
sumber
c = np.array ([[1,2,3], [4,5,6]])
sumber