Wie konvertiere ich?
["1.1", "2.2", "3.2"]
zu
[1.1, 2.2, 3.2]
in NumPy?
Wenn Sie die Daten als Liste einlesen, tun Sie dies einfach np.array(map(float, list_of_strings))
(oder verwenden Sie gleichwertig ein Listenverständnis). (In Python 3 müssen Sie list
den map
Rückgabewert aufrufen , wenn Sie ihn verwenden map
, da map
jetzt ein Iterator zurückgegeben wird.)
Wenn es sich jedoch bereits um eine Reihe von Zeichenfolgen handelt, gibt es einen besseren Weg. Verwenden Sie astype()
.
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list
. Numpy Arrays werden bewusst homogen typisiert. Wenn Sie wirklich wollen, können Sie ein Objektarray verwenden (znp.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)
. B. ). Objektarrays haben jedoch keine wesentlichen Vorteile gegenüber der Verwendung einer Liste.Sie können dies auch verwenden
quelle
Eine andere Option könnte numpy.asarray sein :
Für Python 2 *:
ergebend:
quelle
Wenn Sie eine einzelne Zeichenfolge haben (oder erstellen), können Sie np.fromstring verwenden :
Beachten Sie,
x = ','.join(x)
dass das x-Array in einen String umgewandelt wird'1.1, 2.2, 3.2'
. Wenn Sie eine Zeile aus einer txt-Datei lesen, ist jede Zeile bereits eine Zeichenfolge.quelle