Buscar..


Guardando y cargando matrices numpy usando archivos binarios

x = np.random.random([100,100])
x.tofile('/path/to/dir/saved_binary.npy')
y = fromfile('/path/to/dir/saved_binary.npy')
z = y.reshape(100,100)
all(x==z)
# Output:
#     True

Cargando datos numéricos de archivos de texto con estructura consistente.

La función np.loadtxt se puede usar para leer archivos similares a csv:

# File:
#    # Col_1 Col_2
#    1, 1
#    2, 4
#    3, 9
np.loadtxt('/path/to/dir/csvlike.txt', delimiter=',', comments='#')
# Output:
# array([[ 1.,  1.],
#        [ 2.,  4.],
#        [ 3.,  9.]])

El mismo archivo podría leerse usando una expresión regular con np.fromregex :

np.fromregex('/path/to/dir/csvlike.txt', r'(\d+),\s(\d+)', np.int64)
# Output:
# array([[1, 1],
#        [2, 4],
#        [3, 9]])

Guardando datos como archivo ASCII estilo CSV

De forma np.loadtxt a np.loadtxt , np.savetxt se puede usar para guardar datos en un archivo ASCII

import numpy as np
x = np.random.random([100,100])
np.savetxt("filename.txt", x)

Para controlar el formato:

np.savetxt("filename.txt", x, delimiter=", " , 
    newline="\n", comments="$ ", fmt="%1.2f",
    header="commented example text")

Salida:

$ commented example text
0.30, 0.61, 0.34, 0.13, 0.52, 0.62, 0.35, 0.87, 0.48, [...]

Leyendo archivos CSV

Tres funciones principales disponibles (descripción de las páginas del manual):

fromfile : una forma altamente eficiente de leer datos binarios con un tipo de datos conocido, así como analizar archivos de texto con formato simple. Los datos escritos usando el método tofile se pueden leer usando esta función.

genfromtxt : carga datos de un archivo de texto, con los valores faltantes manejados como se especifica. Cada línea después de las primeras líneas skip_header se divide en el carácter delimitador y los caracteres que siguen al carácter de comentarios se descartan.

loadtxt : carga los datos de un archivo de texto. Cada fila en el archivo de texto debe tener el mismo número de valores.

genfromtxt es una función de envoltorio para loadtxt . genfromtxt es el más sencillo de usar, ya que tiene muchos parámetros para manejar el archivo de entrada.

Número consistente de columnas, tipo de datos consistente (numérico o cadena):

Dado un archivo de entrada, myfile.csv con el contenido:

#descriptive text line to skip
1.0, 2, 3
4, 5.5, 6

import numpy as np
np.genfromtxt('path/to/myfile.csv',delimiter=',',skiprows=1)

da una matriz:

array([[ 1. ,  2. ,  3. ],
       [ 4. ,  5.5,  6. ]])

Número consistente de columnas, tipo de datos mixtos (a través de columnas):

1   2.0000  buckle_my_shoe
3   4.0000  margery_door

import numpy as np
np.genfromtxt('filename', dtype= None)


array([(1, 2.0, 'buckle_my_shoe'), (3, 4.0, 'margery_door')], 
dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '|S14')])

Tenga en cuenta que el uso de dtype=None da lugar a una nueva versión.

Cantidad inconsistente de columnas:

archivo: 1 2 3 4 5 6 7 8 9 10 11 22 13 14 15 16 17 18 19 20 21 22 23 24

En la matriz de una sola fila:

result=np.fromfile(path_to_file,dtype=float,sep="\t",count=-1)


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow