Leia CSV para NumPy Array em Python

Manav Narula 6 fevereiro 2023
  1. Use a função numpy.genfromtxt() para ler dados CSV para uma NumPy array
  2. Use um DataFrame pandas para ler dados CSV para um NumPy Array
  3. Use o módulo csv para ler dados CSV para uma NumPy array
Leia CSV para NumPy Array em Python

Este tutorial discutirá como ler dados de um arquivo CSV e armazená-los em um array numpy.

Use a função numpy.genfromtxt() para ler dados CSV para uma NumPy array

A função genfromtxt() é freqüentemente usada para carregar dados de arquivos de texto. Podemos ler dados de arquivos CSV usando esta função e armazená-los em um array numpy. Esta função tem muitos argumentos disponíveis, tornando mais fácil carregar os dados em nosso formato desejado. Podemos especificar o delimitador, lidar com os valores ausentes, excluir os caracteres especificados e especificar o tipo de dados dos dados usando os diferentes argumentos desta função.

Por exemplo,

from numpy import genfromtxt

data = genfromtxt("sample.csv", delimiter=",", skip_header=1)
print(data)

Resultado:

[[1. 2. 3.]
 [4. 5. 6.]]

Muitas outras funções são derivadas disso, como recfromtxt() e recfromcsv() que podem executar a mesma função, mas têm valores padrão diferentes.

No código a seguir, leremos os dados de um arquivo CSV usando o arquivo recfromcsv().

import numpy as np

data = np.recfromcsv("sample.csv", skip_header=0)
print(data)

Resultado:

[(1, 2, 3) (4, 5, 6)]

Observe que não precisamos especificar o delimitador como uma vírgula e o valor diferente para especificar a linha do cabeçalho.

Use um DataFrame pandas para ler dados CSV para um NumPy Array

Também podemos usar um DataFrame pandas para ler dados CSV em um array. Para isso, vamos ler os dados para um DataFrame e então converter para um array numpy() usando a função values() da biblioteca pandas.

O código a seguir implementa isso.

from pandas import read_csv

df = read_csv("sample.csv")
data = df.values
print(data)

Resultado:

[[1 2 3]
 [4 5 6]]

Use o módulo csv para ler dados CSV para uma NumPy array

O módulo csv é usado para ler e gravar dados em arquivos CSV de forma eficiente. Este método lerá os dados de um arquivo CSV usando este módulo e os armazenará em uma lista. Em seguida, procederemos para converter essa lista em um array numpy.

O código abaixo irá explicar isso.

import csv
import numpy as np

with open("sample.csv", "r") as f:
    data = list(csv.reader(f, delimiter=";"))

data = np.array(data)
print(data)

Resultado:

[['1,2,3']
 ['4,5,6']]
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn