369 Stimmen

Konvertieren eines 2D-Float-Arrays in ein 2D-Int-Array in NumPy

Wie konvertiere ich ein float NumPy-Array in ein int NumPy-Array?

477voto

BrenBarn Punkte 228691

Verwenden Sie die astype Methode.

>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. ,  2.3],
       [ 1.3,  2.9]])
>>> x.astype(int)
array([[1, 2],
       [1, 2]])

78voto

fhtuft Punkte 956

Einige Numpy-Funktionen zur Steuerung der Rundung: rint , Boden , trunc , Decke . je nachdem, wie Sie die Floats auf- oder abrunden wollen, oder auf die nächste int.

>>> x = np.array([[1.0,2.3],[1.3,2.9]])
>>> x
array([[ 1. ,  2.3],
       [ 1.3,  2.9]])
>>> y = np.trunc(x)
>>> y
array([[ 1.,  2.],
       [ 1.,  2.]])
>>> z = np.ceil(x)
>>> z
array([[ 1.,  3.],
       [ 2.,  3.]])
>>> t = np.floor(x)
>>> t
array([[ 1.,  2.],
       [ 1.,  2.]])
>>> a = np.rint(x)
>>> a
array([[ 1.,  2.],
       [ 1.,  3.]])

Um einen dieser Typen in int oder einen der anderen Typen in numpy umzuwandeln, astype (wie von BrenBern beantwortet):

a.astype(int)
array([[1, 2],
       [1, 3]])

>>> y.astype(int)
array([[1, 2],
       [1, 2]])

19voto

Hackaholic Punkte 17340

Können Sie np.int_ :

>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. ,  2.3],
       [ 1.3,  2.9]])
>>> np.int_(x)
array([[1, 2],
       [1, 2]])

18voto

1'' Punkte 25004

Wenn Sie nicht sicher sind, dass Ihre Eingabe ein Numpy-Array sein wird, können Sie asarray con dtype=int anstelle von astype :

>>> np.asarray([1,2,3,4], dtype=int)
array([1, 2, 3, 4])

Wenn das Eingabefeld bereits den richtigen dtype hat, asarray vermeidet das Kopieren des Arrays, während astype nicht (es sei denn, Sie geben copy=False ):

>>> a = np.array([1,2,3,4])
>>> a is np.asarray(a)  # no copy :)
True
>>> a is a.astype(int)  # copy :(
False
>>> a is a.astype(int, copy=False)  # no copy :)
True

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X