Converter Float Array em Int Array em NumPy
-
Converter um array 2D de Float para Int usando
ndarray.astype()
no NumPy -
Converter um array 2D de Float para Int usando
ndarray.asarray()
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
elike
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.