Wie konvertiert man ein Python-Set in ein numpy Array?
Ich bin mit einem set-Vorgangs in python zum ausführen einer symmetrischen Differenz zwischen zwei numpy-arrays. Das Ergebnis jedoch ist ein Satz und ich brauche, um es zu konvertieren zurück in ein numpy-array, um vorwärts zu bewegen. Gibt es eine Möglichkeit, dies zu tun? Hier ist, was ich versucht habe:
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a) ^ set(b)
Das Ergebnis ist ein set:
In [27]: c
Out[27]: set([1, 4, 6])
Wenn ich konvertieren in ein numpy-array, es legt die gesamte Reihe in das erste array-element.
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
Was ich brauche, allerdings wäre diese:
array([1,4,6],dtype=int)
Könnte ich die Schleife über die Elemente zu konvertieren eins nach dem anderen, aber ich werde mit 100.000 Elementen und hoffte auf eine integrierte Funktion, um speichern Sie die Schleife. Danke!
InformationsquelleAutor der Frage mishaF | 2011-12-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht konvertieren, die numpy-array festlegen, um exklusiv-oder. Verwenden setxor1d direkt.
InformationsquelleAutor der Antwort kennytm
Tun:
- Und dtype ist int (int64 auf meiner Seite.)
InformationsquelleAutor der Antwort tito
Versuchen.
Konvertieren zu-Liste, bevor die Initialisierung numpy-array, würden die einzelnen Elemente zu integer, anstatt das erste element als Objekt.
InformationsquelleAutor der Antwort Abhijit