HOWTO · NumPy

Converter Float Array em Int Array em NumPy

Aprenda a converter um array NumPy flutuante 2D em um array NumPy inteira 2D em Python

Nesta página

Freqüentemente, temos que converter valores flutuantes em valores inteiros para uma variedade de casos de uso. Semelhante é o caso com arrays Python e arrays NumPy.

Usando algumas funções de NumPy, podemos facilmente converter arrays NumPy 2D flutuantes em arrays NumPy inteiros 2D.

Neste artigo, falaremos sobre dois desses métodos, ndarray.astype() e numpy.asarray().

Converter um array 2D de Float para Int usando ndarray.astype() no NumPy

As matrizes NumPy são do tipo ndarray. Esses objetos têm funções embutidas, e uma dessas funções é astype(). Esta função é usada para criar uma cópia de um array NumPy de um tipo específico. Este método aceita cinco argumentos, a saber, dtype, order, casting, subok e copy. dtype refere-se ao tipo de dados do array copiado. order é um argumento opcional e controla o layout da memória do array resultante. Todas as outras opções são opcionais.

Para saber mais sobre os outros parâmetros desta função, consulte a documentação oficial desta função aqui

Consulte o código a seguir para entender melhor essa função.

import numpy as np

myArray = np.array(
    [[1.0, 2.5, 3.234, 5.99, 99.99999], [0.3, -23.543, 32.9999, 33.0000001, -0.000001]]
)
myArray = myArray.astype(int)
print(myArray)

Resultado:

[[  1   2   3   5  99]
 [  0 -23  32  33   0]]

Converter um array 2D de Float para Int usando ndarray.asarray()

Em segundo lugar, podemos usar a função asarray(). Esta função aceita quatro argumentos, a, dtype, order e like.

  • a refere-se à matriz de entrada que deve ser convertida.
  • dtype refere-se ao tipo de dados para o qual a matriz deve ser convertida. Curiosamente, dtype é um argumento opcional e seu valor padrão é inferido da própria entrada.
  • order e like também são outros argumentos opcionais. Ordem refere-se ao layout de memória do array de saída.

Para saber mais sobre os argumentos desta função, consulte a documentação oficial desta função aqui

import numpy as np

myArray = np.array([[1.923, 2.34, 23.134], [-24.000001, 0.000001, -0.000223]])
myArray = np.asarray(myArray, dtype=int)
print(myArray)

Resultado:

[[  1   2  23]
 [-24   0   0]]

No código acima, o tipo de dados é mencionado como int e a matriz de saída também é um array NumPy de número inteiro.