ndarray - python numpy array append




Die Formatierung wird in einem anzahligen Array ausgeführt (3)

Sie können die Rundungsfunktion verwenden. Hier ein Beispiel

numpy.round([2.15295647e+01, 8.12531501e+00, 3.97113829e+00, 1.00777250e+01],2)
array([ 21.53,   8.13,   3.97,  10.08])

Wenn Sie nur die Darstellung ändern möchten, würde ich nicht empfehlen, das Druckformat global zu ändern, wie oben vorgeschlagen. Ich würde meine Ausgabe an Ort und Stelle formatieren.

>>a=np.array([2.15295647e+01, 8.12531501e+00, 3.97113829e+00, 1.00777250e+01])
>>> print [ "{:0.2f}".format(x) for x in a ]
['21.53', '8.13', '3.97', '10.08']

Wenn ich ein numpliges Array wie folgt habe:

[2.15295647e+01, 8.12531501e+00, 3.97113829e+00, 1.00777250e+01]

Wie kann ich den Dezimalpunkt verschieben und die Zahlen formatieren, so dass ich mit einem numpy Array wie folgt enden:

[21.53, 8.13, 3.97, 10.08]

np.around(a, decimals=2) gibt mir nur [2.15300000e+01, 8.13000000e+00, 3.97000000e+00, 1.00800000e+01] Was ich nicht will und ich habe keinen anderen Weg gefunden es.


Sie verwechseln tatsächliche Präzision und Anzeigegenauigkeit. Dezimale Rundung kann nicht exakt im Binärformat dargestellt werden. Du solltest es versuchen:

> np.set_printoptions(precision=2)
> np.array([5.333333])
array([ 5.33])

[ round(x,2) for x in [2.15295647e+01, 8.12531501e+00, 3.97113829e+00, 1.00777250e+01]]




numpy