Converter String em Float em NumPy

Vaibhav Vaibhav 30 janeiro 2023
  1. Converter String em Float em NumPy usando o método astype()
  2. Converter String em Float em NumPy usando o método asarray()
  3. Converter String em Float em NumPy usando o método asfarray()
Converter String em Float em NumPy

As conversões entre dados numéricos e dados de string são um pouco difíceis de manipular. Mas em Python, tudo isso é quase sem esforço, porque Python tem muitas funcionalidades embutidas especialmente criadas para gerar conversões como essas.

Python tem até um monte de bibliotecas externas para lidar com essas conversões com desempenho e velocidade aprimorados. NumPy é uma dessas bibliotecas.

NumPy é uma biblioteca Python que trata de arrays e matrizes multidimensionais e todos os tipos de cálculos matemáticos e lógicos que podemos realizar neles. Este artigo apresentará como converter um array de string NumPy em um array flutuante NumPy usando o próprio NumPy.

Converter String em Float em NumPy usando o método astype()

astype é uma função de classe embutida para objetos do tipo ndarray. Este método retorna uma cópia do ndarray e o converte em um tipo de dados especificado.

A sintaxe do método astype() está abaixo.

astype(dtype, order, casting, subok, copy)

Possui os seguintes parâmetros.

  • dtype - É o tipo de dados para o qual a matriz NumPy será lançada,
  • order - Este é um parâmetro opcional. Este parâmetro controla o layout da memória do array resultante ou a saída.
  • casting - Este é um parâmetro opcional. Este parâmetro controla o tipo de fundição ou conversão que ocorrerá. Por padrão, seu valor é unsafe.
  • subok - Este é um parâmetro booleano opcional. Ele decide se a matriz de saída será do tipo nparray ou subclasses de ndarray.
  • copy - Este é um parâmetro booleano opcional. Ele decide se a saída deve ser um array recém-alocado ou não.

Você pode usar este método para fazer a conversão. Consulte o seguinte trecho de código.

import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = stringArray.astype(float)
print(stringArray)
print(floatArray)

Resultado:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

Para saber mais sobre este método, consulte sua documentação oficial

Converter String em Float em NumPy usando o método asarray()

asarray() é uma função NumPy que converte a matriz de entrada em um array NumPy de um tipo especificado. A matriz de entrada pode ser uma lista do Python, tuplas, tuplas de listas, lista de tuplas, listas de listas, tuplas de tuplas e a própria matriz NumPy.

A sintaxe do método asarray() está abaixo.

asarray(a, dtype, order, like)

Possui os seguintes parâmetros.

  • a - É a matriz de entrada que será convertida.
  • dtype - Refere-se ao tipo de dados do array convertido. Por padrão, esta função infere automaticamente o tipo de dados do array de entrada.
  • order - Este é um parâmetro opcional. Este parâmetro decide o layout da memória do array convertido.
  • like - Este é um parâmetro booleano opcional. Ele controla a definição do array recém-criado.

Para saber mais sobre este método, consulte os documentos oficiais

import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = np.asarray(stringArray, dtype=float)
print(stringArray)
print(floatArray)

Resultado:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

Converter String em Float em NumPy usando o método asfarray()

Por último, é o asfarray(). Você já deve ter adivinhado o que esse método faz. Ele converte a matriz de entrada em um NumPy do tipo float.

A sintaxe do método asfarray() está abaixo.

asfarray(a, dtype)

Este método possui apenas dois parâmetros.

  • a - É a matriz de entrada que será convertida em um array flutuante.
  • dtype - é um parâmetro opcional e se refere ao tipo de dados do array de saída. Pode ser str ou um dos tipos de dados float. Se seu valor for um dos tipos de dados inteiros, ele será automaticamente substituído pelo tipo de dados float64.
import numpy as np

stringArray = np.array(
    ["1.000", "1.235", "0.000125", "2", "55", "-12.35", "0", "-0.00025"]
)
floatArray = np.asfarray(stringArray, dtype=float)
print(stringArray)
print(floatArray)

Resultado:

['1.000' '1.235' '0.000125' '2' '55' '-12.35' '0' '-0.00025']
[ 1.000e+00  1.235e+00  1.250e-04  2.000e+00  5.500e+01 -1.235e+01
  0.000e+00 -2.500e-04]

Consulte os documentos oficiais para saber mais.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.