Tweet Share

Última atualização em 19 de agosto de 2020

Desenvolver modelos de aprendizagem de máquinas em Python muitas vezes requer o uso de arrays NumPy.

Arrays NumPy são estruturas de dados eficientes para trabalhar com dados em Python, e modelos de aprendizagem de máquinas como os da biblioteca scikit-learn, e modelos de aprendizagem profunda como os da biblioteca Keras, esperam dados de entrada no formato de arrays NumPy e fazem previsões no formato de arrays NumPy.

Como tal, é comum precisar salvar arrays NumPy em arquivo.

Por exemplo, você pode preparar seus dados com transformações como escalas e precisar salvá-los em arquivo para uso posterior. Você também pode usar um modelo para fazer previsões e precisar salvar as previsões em arquivo para uso posterior.

Neste tutorial, você descobrirá como salvar suas arrays NumPy em arquivo.

Após completar este tutorial, você saberá:

  • Como salvar arrays NumPy em arquivos formatados CSV.
  • Como salvar arrays NumPy em arquivos formatados NPY.
  • Como salvar arrays NumPy em arquivos formatados NPZ comprimidos.

Dê início ao seu projeto com meu novo livro Machine Learning Mastery With Python, incluindo tutoriais passo-a-passo e os arquivos de código fonte Python para todos os exemplos.

Dê início ao seu projeto.

Como salvar um NumPy Array em arquivo para Machine Learning

Como salvar um NumPy Array em arquivo para Machine Learning
Photo de Chris Combe, alguns direitos reservados.

Visão geral do tutorial

Este tutorial é dividido em três partes; elas são:

  1. Salvar NumPy Array para .CSV (ASCII)
  2. Salve NumPy Array para arquivo .NPY (binário)
  3. Salve NumPy Array para arquivo .NPZ (comprimido)

Salve NumPy Array para arquivo .CSV (ASCII)

O formato de arquivo mais comum para armazenar dados numéricos em arquivos é o formato de variável separada por vírgula, ou CSV para abreviar.

É mais provável que seus dados de treinamento e dados de entrada para seus modelos sejam armazenados em arquivos CSV.

É conveniente salvar dados em arquivos CSV, como as previsões de um modelo.

Você pode salvar suas arrays NumPy em arquivos CSV usando a função savetxt(). Esta função toma um nome de arquivo e array como argumentos e salva o array em formato CSV.

Você também deve especificar o delimitador; este é o caractere usado para separar cada variável no arquivo, mais comumente uma vírgula. Isto pode ser definido através do argumento “delimitador”.

1.1 Exemplo de como salvar um NumPy Array em arquivo CSV

O exemplo abaixo demonstra como salvar um único array NumPy em formato CSV.

1
2
3
4
5
6
7

# salvar numpy array como arquivo csv
de numpy import asarray
de numpy import savetxt
# definir dados
data = asarray(])
# salvar em arquivo csv
savetxt(‘data.csv’, data, delimiter=’,’)

Executar o exemplo irá definir um array NumPy e salvá-lo no arquivo ‘data.csv’.

O array tem uma única linha de dados com 10 colunas. Nós esperaríamos que estes dados fossem salvos em um arquivo CSV como uma única linha de dados.

Após rodar o exemplo, nós podemos inspecionar o conteúdo do arquivo ‘data.csv’.

Devemos ver o seguinte:

1
0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.000000000000000000e+00,8.000000000000000000e+00,9.000000000000000000e+00

Vemos que os dados são salvos corretamente como uma única linha e que os números de ponto flutuante no array foram salvos com total precisão.

1.2 Exemplo de carregamento de um NumPy Array a partir de arquivo CSV

Podemos carregar esses dados posteriormente como um array NumPy usando a função loadtext() e especificar o nome do arquivo e o mesmo delimitador de vírgula.

O exemplo completo está listado abaixo.

1
2
3
4
5
6

# carregar matriz numérica do arquivo csv
# carregar matriz numérica do arquivo csv
# carregar matriz numérica do arquivo csv
dados = loadtxt(‘dados.csv’, delimiter=’,’)
# print the array
print(data)

Executar o exemplo carrega os dados do arquivo CSV e imprime o conteúdo, combinando nossa única linha com 10 colunas definidas no exemplo anterior.

1

Guardar NumPy Array para .NPY File (binário)

Por vezes temos muitos dados em NumPy arrays que queremos salvar eficientemente, mas que só precisamos usar em outro programa Python.

Assim, podemos salvar as arrays NumPy em um formato binário nativo que é eficiente tanto para salvar quanto para carregar.

Isso é comum para dados de entrada que foram preparados, como dados transformados, que precisarão ser usados como base para testar uma série de modelos de aprendizagem de máquinas no futuro ou executar muitos experimentos.

O programa .npy é apropriado para este caso de uso e é referido como simplesmente “NumPy format”.

Isso pode ser alcançado usando a função save() NumPy e especificando o nome do arquivo e o array que será salvo.

2.1 Exemplo de Salvamento de uma matriz NumPy para um arquivo NPY

O exemplo abaixo define nosso array NumPy bidimensional e o salva em um arquivo .npy.

1
2
3
4
5
6
7

# salvar matriz numpia como arquivo npy
de asarray de importação numpy
de importação numpy salvar
# definir dados
dados = asarray(])
# salvar em arquivo npy
salvar(‘dados.npy’, data)

Depois de executar o exemplo, você verá um novo arquivo no diretório com o nome ‘data.npy’.

Você não pode inspecionar o conteúdo deste arquivo diretamente com seu editor de texto porque ele está em formato binário.

2.2 Exemplo de carregamento de uma matriz NumPy a partir de um arquivo NPY

Você pode carregar este arquivo como uma matriz NumPy mais tarde usando a função load().

O exemplo completo está listado abaixo.

1
2
3
4
5
6

# carregar matriz numérica de arquivo npy
# carregar matriz numérica de importação
# carregar matriz numérica
dados = carga(‘dados.npy’)
# print the array
print(data)

Executar o exemplo irá carregar o arquivo e imprimir o conteúdo, confirmando que ambos foram carregados corretamente e que o conteúdo corresponde ao que esperamos no mesmo formato bidimensional.

1
]

>

Salvar NumPy Array para .NPZ (comprimido)

Por vezes, preparamos dados para modelagem que precisam ser reutilizados em vários experimentos, mas os dados são grandes.

Esta pode ser uma matriz NumPy pré-processada como um corpo de texto (inteiros) ou uma coleção de dados de imagem redimensionados (pixels). Nesses casos, é desejável salvar os dados em um arquivo, mas também em um formato compactado.

Isso permite que gigabytes de dados sejam reduzidos a centenas de megabytes e permite a fácil transmissão para outros servidores de computação em nuvem para execução de algoritmos longos.

O formato de arquivo .npz é apropriado para esse caso e suporta uma versão compactada do formato de arquivo Nativo NumPy.

A função NumPy savez_compressed() permite que múltiplas matrizes NumPy sejam salvas em um único arquivo comprimido .npz.

3.1 Exemplo de salvamento de uma matriz NumPy em um arquivo NPZ

Podemos usar esta função para salvar nossa matriz NumPy única em um arquivo comprimido.

O exemplo completo está listado abaixo.

1
2
3
4
5
6
7

# salvar numpy array como arquivo npz
de numpy import asarray
de numpy import savez_compressed
# definir dados
data = asarray(])
# salvar em arquivo npy
savez_compressed(‘data.npz’, data)

A execução do exemplo define o array e o salva em um arquivo em formato numérico comprimido com o nome ‘data.npz’.

Como com o formato .npy, não podemos inspecionar o conteúdo do arquivo salvo com um editor de texto porque o formato do arquivo é binário.

3.2 Exemplo de Carregar uma NumPy Array a partir de um ficheiro NPZ

Podemos carregar este ficheiro mais tarde usando a mesma função load() da secção anterior.

Neste caso, a função savez_compressed() suporta a gravação de múltiplas arrays num único ficheiro. Portanto, a função load() pode carregar múltiplos arrays.

Os arrays carregados são retornados da função load() em uma dita com os nomes ‘arr_0’ para o primeiro array, ‘arr_1’ para o segundo, e assim por diante.

O exemplo completo de carregar nosso único array está listado abaixo.

1
2
3
4
5
6
7
8

# carregar matriz numérica de arquivo npz
# carregar matriz numérica de importação
# carregar matriz numérica de dados
dict_data = carregar(‘dados.npz’)
# extrair o primeiro array
dados = dict_data
# imprimir o array
imprimir(dados)

Executar o exemplo carrega o arquivo numérico comprimido que contém um dicionário de arrays, depois extrai o primeiro array que salvamos (salvamos apenas um), depois imprime o conteúdo, confirmando os valores e a forma do array corresponde ao que salvamos em primeiro lugar.

1
]

Outras Leituras

Esta secção fornece mais recursos sobre o tópico se você estiver procurando ir mais fundo.

Posts

  • Como carregar dados de aprendizagem de máquinas em Python
  • Uma introdução suave às matrizes NumPy em Python
  • Como indexar, cortar e reformular matrizes NumPy para aprendizagem de máquinas

APIs

  • numpy.savetxt API
  • numpy.save API
  • numpy.savez API
  • numpy.savez API
  • numpy.savez_compressed API
  • numpy.load API
  • numpy.loadtxt API

Summary

Neste tutorial, você descobriu como salvar suas arrays NumPy em arquivo.

Especificamente, você aprendeu:

  • Como salvar arrays NumPy em arquivos formatados em CSV.
  • Como salvar arrays NumPy em arquivos formatados em NPY.
  • Como salvar arrays NumPy em arquivos compactados NPZ.

Você tem alguma dúvida?
Saiba suas dúvidas nos comentários abaixo e eu farei o meu melhor para responder.

Descubra a Aprendizagem Rápida da Máquina em Python!

Master Machine Learning With Python

Develop Your Own Models in Minutes

…com apenas algumas linhas de código scikit-learn

Aprenda como no meu novo Ebook:
Mestria de Aprendizagem de Máquinas com Python

Cobre tutoriais de auto-estudo e projetos ponta-a-ponta como:
Carregando dados, visualização, modelagem, ajuste e muito mais…

Finally Bring Machine Learning To
Seu próprio projeto

Skip the Academics. Just Results.

Veja o que está dentro

Tweet Share Share

Deixe uma resposta

O seu endereço de email não será publicado.