Konvertierung von Liste zu Array zur Verwendung der Funktion ravel ()

109

Ich habe eine Liste in Python und möchte sie in ein Array konvertieren, um die ravel()Funktion verwenden zu können.

user2229953
quelle
2
Bitte versuchen Sie, Anfragen zur Klärung zu beantworten und Ihre Fragen zu verbessern, anstatt viele nicht wirklich gute Fragen zu stellen. Lesen Sie diese Antwort abschließend sorgfältig durch . Ich denke, es löst Ihr großes Problem ...
Jorgeca

Antworten:

237

Verwendung numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)
A. Rodas
quelle
25
Eigentlich myarray = np.array(mylist)sollte das reichen.
FGB
11
Nun, es ist sicherer, da es keine Arrays kopiert, sondern sie einfach zurückgibt. Daher ist es eine gute Angewohnheit, sie zu verwenden, es sei denn, man wird sicher eine Kopie der Originaldaten erstellen
EnricoGiampieri
1
@EnricoGiampieri, fair, aber müssten Sie nicht ein Array daraus machen, egal was passiert? Ich glaube, ich folge nicht, wie Sie keinen der beiden Befehle zum Generieren eines neuen Array-Objekts erhalten würden.
FGB
Beide Befehle erstellen ein neues Array ausgehend von einer Liste, das ist sicher, aber oft geht es darum, eine Eingabe in ein bestimmtes Format zu konvertieren, um eine bestimmte Methode anzuwenden, und dies ähnelt eher dem Fall des OP. Die Verwendung von Asarray ist eine gute Angewohnheit, es sei denn, man ist sich sicher, dass eine neue Kopie benötigt wird. Es arrayreicht aus, nur zu tippen , aber warum sollte man sich die Möglichkeit entgehen lassen, das OP zu einer guten Gewohnheit zu erziehen, während wir hier sind?
EnricoGiampieri
Ich wollte nur sagen, dass @fgb eine angemessene Lösung vorgeschlagen hat. Die Funktion '.asarray' gibt ein numpy-Objekt zurück, während '.array Ihnen ein Array direkt zurückgibt. Wie auch immer, danke an euch beide!
Adrian Grzywaczewski
7

Erstellen Sie ein Int-Array und eine Liste

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)
Uszkai Attila
quelle
Wofür steht das "i"? und was soll es für str sein?
Dany Y
6

Ich wollte einen Weg, dies ohne ein zusätzliches Modul zu tun. Drehen Sie zuerst die Liste in einen String und hängen Sie sie dann an ein Array an:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
D_C
quelle
Tippfehler können nicht bearbeitet werden: Die erste Zeile sollte seindataset_list = ';'.join(input_list)
Alex Poca
2

Wenn Sie nur ravelIhre (verschachtelte, ich nehme an?) Liste aufrufen möchten , können Sie dies direkt numpytun und das Casting für Sie erledigen:

L = [[1,None,3],["The", "quick", object]]
np.ravel(L)
# array([1, None, 3, 'The', 'quick', <class 'object'>], dtype=object)

Erwähnenswert , dass Sie brauchen nicht numpydurchhaupt .

Paul Panzer
quelle
-1

Verwenden Sie den folgenden Code:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)
Vinay
quelle
-13

Wenn die Variable b eine Liste hat, können Sie einfach Folgendes tun:

Erstellen Sie eine neue Variable "a" als: a=[] Weisen Sie die Liste dann "a" als zu:a=b

Jetzt hat "a" alle Komponenten der Liste "b" im Array.

Sie haben also die Liste erfolgreich in ein Array konvertiert.

Mayank Sharma
quelle
8
Eigentlich nein ... das ist völlig falsch. Alles, was Sie haben, sind zwei Variablen, die auf dieselbe Liste zeigen, kein numpy-Array.
Ajean