2009-11-25 38 views
11

¿Cómo puedo importar una matriz a python (numpy.arry) desde un archivo y de esa manera el archivo debe escribirse si aún no existe?importar una matriz en python

Por ejemplo, guarde una matriz en un archivo y luego vuelva a cargarla.

Respuesta

19

Pagar la entrada en el numpy example list. Aquí está la entrada en .loadtxt()

>>> from numpy import * 
>>> 
>>> data = loadtxt("myfile.txt")      # myfile.txt contains 4 columns of numbers 
>>> t,z = data[:,0], data[:,3]       # data is 2D numpy array 
>>> 
>>> t,x,y,z = loadtxt("myfile.txt", unpack=True)     # to unpack all columns 
>>> t,z = loadtxt("myfile.txt", usecols = (0,3), unpack=True)  # to select just a few columns 
>>> data = loadtxt("myfile.txt", skiprows = 7)     # to skip 7 rows from top of file 
>>> data = loadtxt("myfile.txt", comments = '!')     # use '!' as comment char instead of '#' 
>>> data = loadtxt("myfile.txt", delimiter=';')     # use ';' as column separator instead of whitespace 
>>> data = loadtxt("myfile.txt", dtype = int)      # file contains integers instead of floats 
+0

hola, gracias por responder, solo puedo dudar de que él defina la ruta de donde el archivo – ricardo

0

Tenga una mirada en SciPy cookbook. Debería darle una idea de algunos métodos básicos para importar/exportar datos.

Si guarda/carga los archivos de sus propios programas de Python, también puede considerar el módulo Pickle, o cPickle.

+1

Decapado no es apropiado para las matrices, mientras que usted puede hacerlo, será lento como el infierno. Use np.save() para guardar en el formato .npy o np.savez() para guardar un archivo comprimido de varias matrices. – dwf

1

(Sé que la pregunta es viejo, pero creo que esto podría ser bueno como una referencia para las personas con preguntas similares)

Si desea cargar datos desde un archivo ASCII/texto (que tiene el beneficio o siendo más o menos legible y fácil de analizar en otro software), numpy.loadtxt es probablemente lo que quiere:

Si lo que desea es guardar de forma rápida y matrices numpy de carga/matrices hacia y desde un archivo, echar un vistazo a numpy.save y numpy.load:

7

Otra opción es numpy.genfromtxt, por ejemplo:

import numpy as np 
data = np.genfromtxt("myfile.dat",delimiter=",") 

Esto hará que un data numpy array con tantas filas y columnas como en su archivo

1

En Python, almacenar una lista python desnuda como numpy.array y luego guardarla en un archivo, luego cargarla nuevamente y convertirla a una lista requiere algunos trucos de conversión. La confusión se debe a que las listas de Python no son en absoluto lo mismo que numpy.arrays:

import numpy as np 
foods = ['grape', 'cherry', 'mango'] 
filename = "./outfile.dat.npy" 
np.save(filename, np.array(foods)) 
z = np.load(filename).tolist() 
print("z is: " + str(z)) 

Esta impresora:

z is: ['grape', 'cherry', 'mango'] 

que se almacena en el disco como el nombre del archivo: outfile.dat.npy

la métodos importantes aquí son las funciones de conversión tolist() y np.array(...).