Dies ist zweifellos in anderen (und vielleicht allen) Sprachen der Fall, aber ich habe nur in Python getestet. Meine Frage ist dies: Wenn Arithmetik auf zwei Werte mit unterschiedlicher Genauigkeit ausführt, warum gibt NumPy das Ergebnis in dem Dtype des Werts mit höchster Genauigkeit zurück?NumPy wandelt niedrigere Genauigkeit in Fließkomma-Arithmetik um
Zum Beispiel
import numpy as np
single = np.array([[1, 2, 3], [4, 5, 6]], np.float32)
double = np.array([[1, 2, 3], [4, 5, 6]], np.float64)
diff = single-double
print "single data type -", single.dtype
print "double data type -", double.dtype
print "diff data type -", diff.dtype
ergibt:
einzigen Datentyp - float32
doppelte Datentyp - FLOAT64
diff Datentyp - FLOAT64
Wie ich schwimmend verstehen Punktpräzision, die zusätzliche zweite Hälfte der Repräsentation diff
ist nicht korrekt. Was ist dann der Grund dafür, das Ergebnis auf die höchste Präzision und nicht auf die niedrigste Präzision zu übertragen?