我如何从文件将数组导入到 python (numpy.arry) 中,并且如果该文件不存在则必须写入该文件。
例如,将矩阵保存到文件然后将其加载回来。
你可以使用 NumPy 提供的 numpy.save 和 numpy.load 函数来将数组保存到文件并加载回来。如果文件不存在,保存操作会自动创建该文件。
numpy.save
numpy.load
你可以使用 numpy.save 将 NumPy 数组保存到 .npy 文件中,如果文件不存在,它会自动创建文件。
.npy
import numpy as np # 示例数组 array_to_save = np.array([[1, 2, 3], [4, 5, 6]]) # 保存数组到文件 np.save("my_array.npy", array_to_save)
要从 .npy 文件中加载数组,可以使用 numpy.load。
# 从文件加载数组 loaded_array = np.load("my_array.npy") print("加载的数组:") print(loaded_array)
.npz
如果你需要将多个数组保存到一个文件中,可以使用 numpy.savez,它可以将多个数组保存到一个压缩的 .npz 文件中。
numpy.savez
# 示例数组 array1 = np.array([[1, 2, 3], [4, 5, 6]]) array2 = np.array([[7, 8, 9], [10, 11, 12]]) # 保存多个数组 np.savez("my_arrays.npz", array1=array1, array2=array2)
要从 .npz 文件加载多个数组,可以按如下方式操作:
# 加载多个数组 data = np.load("my_arrays.npz") array1_loaded = data['array1'] array2_loaded = data['array2'] print("Array 1:", array1_loaded) print("Array 2:", array2_loaded)
如果你想在文件不存在时创建文件并保存数据,你可以先检查文件是否存在,如果不存在则写入数据。你可以使用 os.path 模块来判断文件是否存在:
os.path
import os import numpy as np file_name = "my_array.npy" # 检查文件是否存在 if not os.path.exists(file_name): # 文件不存在,保存数据 array_to_save = np.array([[1, 2, 3], [4, 5, 6]]) np.save(file_name, array_to_save) print(f"{file_name} 文件已创建并保存数据。") else: # 文件已存在,加载数据 loaded_array = np.load(file_name) print(f"加载的数组:\n{loaded_array}")
这种方式可以确保在文件不存在时自动创建并保存数据,在文件已经存在时可以直接加载数据。