So konvertieren Sie ein numpy-array aus 'float64' in 'float'
Wie konvertiere ich eine numpy
array
vom Typ 'float64'
zu geben 'float'
? Insbesondere, wie konvertiere ich eine ganze array
mit dtype
'float64'
zu haben dtype
'float'
? Ist das möglich? Die Antwort für Skalare in den Gedanken-zu-sein, die doppelte Frage oben nicht meine Frage.
Bedenken Sie:
>>> type(my_array[0])
<type 'numpy.float64'>
>>> # Let me try to convert this to 'float':
>>> new_array = my_array.astype(float)
>>> type(new_array[0])
<type 'numpy.float64'>
>>> # No luck. What about this:
>>> new_array = my_array.astype('float')
>>> type(new_array[0])
<type 'numpy.float64'>
>>> # OK, last try:
>>> type(np.inf)
<type 'float'>
>>> # Yeah, that's what I want.
>>> new_array = my_array.astype(type(np.inf))
>>> type(new_array[0])
<type 'numpy.float64'>
Wenn Sie unsicher sind, warum könnte ich dies tun möchten, sehen diese Frage und seine Antworten.
AFAIK
mögliche Duplikate von Umwandlung von numpy dtypes native python-Typen
Auch Sie ignorieren können bestimmte Warnungen, die mit np.errstate, so dass Sie nicht haben, blenden Sie die anderen Warnungen.
ah, OK, ja, das ist cool. danke. ich hatte schon fangen die Warnungen mit der
ah, das ist eine gute option, auch. aber ich denke, die beste und klarste, was für mich zu tun, in meinem code ist auszuführen, dass die Subtraktion in eine
float
und float64
sind gleichwertig in numpy.mögliche Duplikate von Umwandlung von numpy dtypes native python-Typen
Auch Sie ignorieren können bestimmte Warnungen, die mit np.errstate, so dass Sie nicht haben, blenden Sie die anderen Warnungen.
ah, OK, ja, das ist cool. danke. ich hatte schon fangen die Warnungen mit der
warnings
Modul und try
/except
Blöcke, aber errstate
macht scheinen viel besser.ah, das ist eine gute option, auch. aber ich denke, die beste und klarste, was für mich zu tun, in meinem code ist auszuführen, dass die Subtraktion in eine
np.errstate
block.InformationsquelleAutor dbliss | 2015-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen anonymen Typ
float
wie dieseInformationsquelleAutor John La Rooy
Ja, eigentlich, wenn man mithilfe von Python-native
float
angeben, "dtype" für ein array numpy wandelt es infloat64
. Wie in Dokumentation -Und -
Dies ist der Grund, warum obwohl Sie
float
zu konvertieren, das ganze array zu schweben , es verwendet immer nochnp.float64
.Entsprechend der Anforderung aus , die andere Frage, die beste Lösung wäre die Umstellung auf normale float-Objekt nach der Einnahme jeder Skalare Wert als -
Eine Lösung, die ich denken konnte ist, erstellen Sie eine Unterklasse für
float
und Sie für Gießen (obwohl mir sieht es schlecht aus). Aber ich würde es vorziehen, die bisherige Lösung über diese, wenn möglich. Beispiel -float64
s mitnp.errstate
- siehe die Kommentare oben.Ich kann die Antwort ein paar von diesen. Numpy speichert alles, was Sie nicht finden können, eine geeignete dtype für als "Objekt", das ist ein Python-Objekt. Im Falle der Klasse X, die es nicht sehen können, die Schwimmer durch Vererbung, also es wählt, Objekt. Da ist der Typ der Werte in na_new sind alle Schwimmer, aber die "dtype" ist "Objekt", es bedeutet, dass alles gespeichert ist, eine Pythonic-Typ statt der numpy float64. Sie können jedoch, führen Sie Mathe auf Objekt dtypes, die bietet einige Vorteile.
InformationsquelleAutor Anand S Kumar