Análisis de datos --- conceptos básicos de numpy (3)

En los dos últimos artículos, presentamos algunos usos básicos de la función numpy y el uso de su función de extensión. Aquí hay una introducción a la biblioteca numpy para leer y escribir archivos.

Uno, usa numpy para leer archivos

1. numpy para almacenar, almacenar y leer archivos csv

    CSV (con una coma como separador) es un formato de archivo común que se usa para almacenar datos por lotes

almacenamiento:

# 文件存储
np.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', 
          header='', footer='', comments='# ', encoding=None)
  • fname:  archivo, cadena, puede ser un archivo comprimido de .gz o .bz2

  • X:   matriz almacenada en el archivo

  • fmt:   el formato del archivo escrito, por ejemplo:% d% .2f% .18e

  • delimitador:  la cadena para dividir la columna, el valor predeterminado es cualquier espacio

  • nueva línea: la cadena que  divide la línea

  • header:  encabezado del archivo

Leer:

# 文件读取
np.loadtxt(fname,  delimiter=None, skiprows=0,
           usecols=None)
  • fname:   el nombre del archivo a leer

  • delimitador:  la cadena para dividir la columna, el valor predeterminado es cualquier espacio

  • skiprows:  omite la primera fila, el valor predeterminado es 0, generalmente omite el encabezado del archivo

  • usecols:  la columna deseada

Ejemplo 1. Almacenamiento:

# 存储
import numpy as np
a = np.arange(50).reshape(5, 10)
# 保存为.txt文件
file = np.savetxt('./test/a.csv', a, fmt = '%d',delimiter=',')
​

Los archivos guardados son los siguientes:

Ejemplo 2, lea:

# 文件读取
np_file = np.loadtxt('./test/a.csv', delimiter=',')
print(np_file)
# 只取第一列和第五列数据
np_file1 = np.loadtxt('./test/a.csv',usecols=(0, 4), delimiter=',')
print(np_file1)
​
"""
np_file: [[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9.]
           [10. 11. 12. 13. 14. 15. 16. 17. 18. 19.]
           [20. 21. 22. 23. 24. 25. 26. 27. 28. 29.]
           [30. 31. 32. 33. 34. 35. 36. 37. 38. 39.]
           [40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]]
第1列和第五列数据 [[ 0.  4.]
                 [10. 14.]
                 [20. 24.]
                 [30. 34.]
                 [40. 44.]]
"""

Nota:  csv solo puede almacenar de manera efectiva matrices unidimensionales y bidimensionales, y np.savetxt () y np.loadtxt () solo pueden almacenar de manera efectiva matrices unidimensionales y bidimensionales.

2. numpy realiza acceso a datos multidimensionales:

almacenamiento:

a.tofile(fid, sep="", format="%s")
  • fid:  archivo, cadena

  • sep:  cadena de segmentación de datos, si es una cadena vacía, escriba en el archivo como binario

  • formato: el formato de los  datos escritos

Leer:


​fromfile(file, dtype=float, count=-1, sep='')
  • archivo:  archivo, cadena

  • dtype:  el tipo de datos leídos

  • count: el número de elementos leídos, -1 significa leer el archivo completo

  • sep: cadena de segmentación de datos, si es una cadena vacía, escriba el archivo como binario

almacenamiento:

# 多维数组的存储
b = np.arange(50).reshape(5, 5, 2)
b.tofile("./test/b.bat", sep=",", format="%d")

Leer:

# 多维数组的读取
np.fromfile('./test/b.bat', dtype=np.int, sep=',')
"""
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
       34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49])
"""
np.fromfile('./test/b.bat', dtype=np.int, sep=',').reshape(5, 5,2)
"""
array([[[ 0,  1], [ 2,  3], [ 4,  5], [ 6,  7], [ 8,  9]],
        [[10, 11], [12, 13], [14, 15], [16, 17], [18, 19]],
        [[20, 21], [22, 23], [24, 25], [26, 27], [28, 29]],
        [[30, 31], [32, 33], [34, 35], [36, 37], [38, 39]],
        [[40, 41], [42, 43], [44, 45], [46, 47], [48, 49]]])
"""

Nota : Este método necesita conocer la dimensión y el tipo de elemento de la matriz cuando se almacena en el archivo durante la lectura, y b.tofile () y np.fromfile () deben usarse juntos para almacenar información adicional a través del archivo de metadatos.

3. Cómodo acceso a archivos en numpy

np.save(file, arr)   np.savez(file, arr)
  • file: nombre del archivo, con .npy como extensión, y la extensión comprimida es .npz

  • arr: variable de matriz

    load () reconoce automáticamente los archivos npz y devuelve un objeto similar a un diccionario. El contenido de la matriz se puede obtener utilizando el nombre de la matriz como clave.

np.load(file)
  • file: nombre del archivo, con .npy como extensión, y la extensión comprimida es .npz
a = np.arange(50).reshape(5,5,2)
np.save("a.npy", a)
b = np.load('a.npy')
print(b)

Para almacenar datos de esta manera, es conveniente guardar el conjunto de entrenamiento, el conjunto de validación, el conjunto de prueba y sus etiquetas en aprendizaje profundo. Cuando se almacena de esta manera, lo que necesita cargar y la cantidad de archivos se reduce considerablemente. El nombre del archivo se cambiará en todas partes. Es una mejor forma de almacenar datos.

 

Maravillosa recomendación

Cálculo de similitud de imagen de reconocimiento de imagen de Python

Instale la versión de GPU de TensorFlow (cuda + cudnn) en win10

Código de visualización de regresión lineal TensorFlow-GPU y resumen del problema

Clasificación de todos los artículos sobre rastreadores

Descifrado de código de verificación deslizante automático basado en selenio

Rastree 58job, trabajo de Ganji y reclutamiento de Zhaopin, y use el análisis de datos para generar el gráfico echarts

Supongo que te gusta

Origin blog.csdn.net/weixin_39121325/article/details/99715464
Recomendado
Clasificación