62 votes

Convertir ndarray de float64 en entier

J'ai un ndarray en python avec un dtype de float64 . Je voudrais convertir le tableau en un tableau d'entiers. Comment dois-je faire cela ?

int() ne fonctionnera pas, car il indique qu'il ne peut pas le convertir en scalaire. Changer le dtype lui-même ne fonctionne évidemment pas, car les octets réels n'ont pas changé. Je n'arrive pas à trouver quoi que ce soit sur Google ou dans la documentation - quelle est la meilleure façon de le faire ?

86voto

KennyTM Points 232647

Utilisez .astype .

 >>> a = numpy.array([1, 2, 3, 4], dtype=numpy.float64)
>>> a
array([ 1.,  2.,  3.,  4.])
>>> a.astype(numpy.int64)
array([1, 2, 3, 4])

Voir la documentation pour plus d'options.

6voto

benjaminmgross Points 198

Il existe également une discussion très utile sur la conversion du tableau en place, la conversion de type sur place d'un tableau NumPy . Si vous êtes préoccupé par la copie de votre tableau (ce que fait astype() ), consultez certainement le lien.

2voto

Ronan Hansel Points 59

Tout ce que j'ai utilisé est

 numpyfloat = (1.0, 2.0, 4.0)
a = numpy.array(numpyfloat, dtype=numpy.int)

C'est ça

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X