小能豆

在 python 中导入数组

py

我如何从文件将数组导入到 python (numpy.arry) 中,并且如果该文件不存在则必须写入该文件。

例如,将矩阵保存到文件然后将其加载回来。


阅读 11

收藏
2024-11-11

共1个答案

小能豆

你可以使用 NumPy 提供的 numpy.savenumpy.load 函数来将数组保存到文件并加载回来。如果文件不存在,保存操作会自动创建该文件。

1. 将数组保存到文件

你可以使用 numpy.save 将 NumPy 数组保存到 .npy 文件中,如果文件不存在,它会自动创建文件。

import numpy as np

# 示例数组
array_to_save = np.array([[1, 2, 3], [4, 5, 6]])

# 保存数组到文件
np.save("my_array.npy", array_to_save)

2. 从文件加载数组

要从 .npy 文件中加载数组,可以使用 numpy.load

# 从文件加载数组
loaded_array = np.load("my_array.npy")

print("加载的数组:")
print(loaded_array)

使用 .npz 格式保存多个数组

如果你需要将多个数组保存到一个文件中,可以使用 numpy.savez,它可以将多个数组保存到一个压缩的 .npz 文件中。

# 示例数组
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 模块来判断文件是否存在:

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}")

这种方式可以确保在文件不存在时自动创建并保存数据,在文件已经存在时可以直接加载数据。

2024-11-11