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.


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)

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)

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)

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 .


-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)

-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.


8
Eigentlich nein ... das ist völlig falsch. Alles, was Sie haben, sind zwei Variablen, die auf dieselbe Liste zeigen, kein numpy-Array.
Ajean
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.