English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

IO de NumPy

NumPy introduit un format de fichier simple pour les objets ndarray : npy.

Les fichiers npy sont utilisés pour stocker les données nécessaires pour reconstruire ndarray, les graphiques, dtype et d'autres informations.

Les fonctions IO couramment utilisées incluent :

Les fonctions load() et save() sont les deux principales fonctions pour lire et écrire des données d'arrays dans les fichiers. Par défaut, les tableaux sont stockés sous forme de binaire non compressé dans un fichier avec l'extension .npy. La fonction savze() est utilisée pour écrire plusieurs tableaux dans un fichier. Par défaut, les tableaux sont stockés sous forme de binaire non compressé dans un fichier avec l'extension .npz. Les fonctions loadtxt() et savetxt() traitent les fichiers de texte normaux (.txt, etc.)

numpy.save()

La fonction numpy.save() enregistre un tableau dans un fichier avec l'extension .npy.
numpy.save(file, arr, allow_pickle=True, fix_imports=True)

参数说明:

file: Fichier à enregistrer, avec l'extension .npy. Si l'extension .npy n'est pas présente à la fin du chemin du fichier, elle sera ajoutée automatiquement. arr: Tableau à enregistrer allow_pickle: Optionnel, valeur booléenne, permettant d'utiliser Python pickles pour enregistrer des tableaux d'objets. Python pickle est utilisé pour sérialiser et désérialiser des objets avant de les enregistrer dans un fichier disque ou de les lire à partir d'un fichier disque. fix_imports: Optional, for the convenience of Pyhton2 中读取 Python3 saved data.
 import numpy as np 
  
 a = np.array([1,2,3,4,5] 
  
 # Save to test.npy file
 np.save('test.npy',a) 
  
 # Save to test1.npy file, if the file path does not end with the extension .npy, the extension will be automatically added
 np.save('test1.npy',a)

We can view the contents of the file:

 $ cat test.npy 
 ?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,),} 
 $ cat test1.npy 
 ?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,),}

It can be seen that the file is garbled because it is the data after the binary format used by Numpy.

We can use the load() function to read the data and display it normally:

import numpy as np 
b = np.load('test.npy') 
print(b)

Le résultat de la sortie est :

[1 2 3 4 5]

np.savez

numpy.savez() function saves multiple arrays to files with the npz extension.

numpy.savez(file, *args, **kwds)

参数说明:

file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。 args: The arrays to be saved can use keyword parameters to name the arrays, arrays passed with non-keyword parameters will be automatically named arr_0, arr_1, … . kwds: The arrays to be saved use keyword names.
 import numpy as np
 a = np.array([1,2,3],[4,5,6])
 b = np.arange(0, 1.0, 0.1)
 c = np.sin(b)
 # c used keyword parameter sin_array
 np.savez("w3codebox.npz", a, b, sin_array = c)
 r = np.load("w3codebox.npz 
 print(r.files) # display the names of each array
 print(r['arr_0']) # array a
 print(r['arr_'])1']) # array b
 print(r['sin_array']) # array c

Le résultat de la sortie est :

 ['sin_array', 'arr_0', 'arr_']1']
 [[1 2 3]
  [4 5 6]]
 [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
 [0. 0.09983342 0.19866933 0.29552021 0.38941834 0.47942554
  0.56464247 0.64421769 0.71735609 0.78332691]

savetxt()

La fonction savetxt() stocke les données dans un format de fichier texte simple, et l'utilisation correspondante est la fonction loadtxt() pour obtenir des données.

 np.loadtxt(FILENAME, dtype=int, delimiter=' ')
 np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

Le paramètre delimiter peut spécifier divers séparateurs, des fonctions de convertisseurs de colonnes spécifiques, le nombre de lignes à sauter, etc.

 import numpy as np
 a = np.array([1,2,3,4,5] 
 np.savetxt('out.txt',a) 
 b = np.loadtxt('out.txt') 
  
 print(b)

Le résultat de la sortie est :

[1. 2. 3. 4. 5.]

Utilisation du paramètre delimiter :

 import numpy as np
 a=np.arange(0,10,0.5).reshape(4,-1)
 np.savetxt("out.txt",a,fmt="%d",delimiter=",") # 改为保存为整数,以逗号分隔
 b = np.loadtxt("out.txt",delimiter=",") # load 时也要指定为逗号分隔
 print(b)
   [[0. 0. 1. 1. 2.]
  [2. 3. 3. 4. 4.]
  [5. 5. 6. 6. 7.]
  [7. 8. 8. 9. 9.]]