Multiplizieren numpy int und float arrays: können Nicht umgewandelt ufunc multiplizieren Ausgabe von "dtype"

Möchte ich vermehren ein int16 array, sondern ein float array mit automatischer Rundung, aber das schlägt fehl :

import numpy

A = numpy.array([1, 2, 3, 4], dtype=numpy.int16)
B = numpy.array([0.5, 2.1, 3, 4], dtype=numpy.float64)

A *= B

Bekomme ich:

TypeError: Cannot cast ufunc multiplizieren Ausgabe von dtype('float64') zu dtype('int16') mit casting-Regel "same_kind'

  • Es scheint, es ist möglich, mit numpy.multiply(A, B, out=A, casting='unsafe') aber, dass der Weg viel länger syntax! Gibt es eine Möglichkeit, einzustellen, casting= "unsicher" in numpy standardmäßig?
  • Siehe github.com/numpy/numpy/pull/6499/files
InformationsquelleAutor Basj | 2016-07-30
Schreibe einen Kommentar