Jak przekonwertować tablicę NumPy na listę Pythona (na przykład [[1,2,3],[4,5,6]]
) i zrobić to dość szybko?
298
Użyj tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
Zauważ, że konwertuje to wartości z dowolnego typu numpy, jaki mogą mieć (np. Np .int32 lub np.float32) na „najbliższy zgodny typ Pythona” (na liście). Jeśli chcesz zachować typy danych numpy, możesz zamiast tego wywołać list () w tablicy, a otrzymasz listę skalar numpy . (Podziękowania dla Mr_and_Mrs_D za wskazanie tego w komentarzu.)
tolist
, przekonwertuje ją nafloats
s - prawdopodobnie nie jest to pożądane. Korzystanielist(myarray)
nie cierpi z tego powodu - dlaczego powinniśmy preferowaćtolist
?myarray.astype(np.int32).tolist()
byłoby opcją i wyraźne na temat tego, co próbujesz osiągnąć. (I na koniec,list(array_of_type_float32)
nie podaje liczb całkowitych, kiedy próbowałem ... więc nie wiem, o co pytasz.)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']]
Metoda numpy .tolist tworzy listy zagnieżdżone, jeśli tablica numpy ma kształt 2D.
jeśli pożądane są płaskie listy, działa poniższa metoda.
źródło
tolist()
działa dobrze, nawet jeśli napotkał tablicę zagnieżdżoną, powiedzmy pandyDataFrame
;źródło
someList = [list(map(int, input().split())) for i in range(N)]
źródło
c = np. tablica ([[1,2,3], [4,5,6]])
źródło