Existe uma maneira de despejar uma matriz NumPy em um arquivo CSV? Eu tenho uma matriz NumPy 2D e preciso despejá-la em formato legível para humanos.
numpy.savetxt
salva um array em um arquivo texto.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
tofile
é uma função conveniente para fazer isso:
import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')
A página de homem tem algumas notas úteis:
Esta é uma função de conveniência para o rápido armazenamento de dados de matriz. Perde-se informação sobre endianness e precisão, por isso este método não é uma boa escolha para ficheiros destinados a arquivar dados ou dados de transporte entre máquinas com diferentes intensidades. Alguns destes problemas podem ser superado pela saída dos dados como arquivos de texto, às custas de velocidade e tamanho do ficheiro.
Nota. Esta função não produz arquivos csv de várias linhas, ela salva tudo em uma linha.
Se você quiser salvar sua matriz numérica (por exemplo, seu_array = np.array([[1,2],[3,4]])
) em uma célula, você pode convertê-la primeiro com seu_array.tolist()
.
Então salve-o da maneira normal para uma célula, com delimiter=';'
e a célula no arquivo csv ficará assim [[1, 2], [2, 4]]
Então você poderia restaurar a sua matriz desta maneira:
your_array = np.array(ast.literal_eval(cell_string))