392 Stimmen

Konvertieren von NumPy-Array in Python Liste Struktur?

Wie konvertiere ich eine NumPy Array zu einer Python-Liste (zum Beispiel [[1,2,3],[4,5,6]] ), und das auch noch einigermaßen schnell?

547voto

Peter Hansen Punkte 20242

Verwenden Sie tolist() :

import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]

Beachten Sie, dass dies die Werte von einem beliebigen Numpy-Typ (z. B. np.int32 oder np.float32) in den "nächstgelegenen kompatiblen Python-Typ" (in einer Liste) konvertiert. Wenn Sie die Numpy-Datentypen beibehalten wollen, können Sie stattdessen list() für Ihr Array aufrufen, und Sie erhalten eine Liste von Numpy-Skalare . (Dank an Mr_and_Mrs_D für den Hinweis in einem Kommentar).

15voto

CodingMatters Punkte 996

Die Methode numpy .tolist erzeugt verschachtelte Listen, wenn die Form des Numpy-Arrays 2D ist.

Wenn flache Listen gewünscht sind, funktioniert die folgende Methode.

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`

12voto

Harshal SG Punkte 325

C = np.array([[1,2,3],[4,5,6]])

list(c.flatten())

5voto

Shivid Punkte 1173

tolist() funktioniert gut, auch wenn ein verschachteltes Array angetroffen wird, z.B. ein Pandas DataFrame ;

my_list = [0,1,2,3,4,5,4,3,2,1,0]
my_dt = pd.DataFrame(my_list)
new_list = [i[0] for i in my_dt.values.tolist()]

print(type(my_list),type(my_dt),type(new_list))

1voto

rahul-ahuja Punkte 749

Eine weitere Option

c.ravel()
# or
c.ravel().tolist()

funktioniert auch.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X