下面给出Python保存为npy和npz格式并读取的完整攻略。
使用NumPy保存为npy格式
import numpy as np
# 创建一个数组
arr = np.arange(10)
# 保存为npy格式
np.save('arr.npy', arr)
# 读取npy格式文件
arr_load = np.load('arr.npy')
上面的代码演示了如何将NumPy数组保存为npy格式,然后如何从文件中将其读取回来。保存使用np.save()
函数,然后指定文件名和要保存的数组变量名。读取使用np.load()
函数,然后指定文件名获取数组变量名。
使用NumPy保存为npz格式
import numpy as np
# 创建两个数组
arr1 = np.arange(10)
arr2 = np.arange(20).reshape((4,5))
# 保存为npz格式
np.savez('arr.npz', a=arr1, b=arr2)
# 读取npz格式文件
data = np.load('arr.npz')
arr1_load = data['a']
arr2_load = data['b']
上面的代码演示了如何将多个NumPy数组保存为npz格式。在保存时,您可以将每个数组与其名称一起作为参数传递。在打开文件时,您可以使用键(即数组名称)获取每个数组。
示例说明
此处给出两个示例说明。
示例1:保存和读取图像
import numpy as np
from PIL import Image
# 打开一张图片
img = Image.open("test.png")
# 将图片转换为NumPy数组
img_arr = np.asarray(img)
# 保存为npy格式
np.save("img.npy", img_arr)
# 读取npy格式文件
img_arr_load = np.load("img.npy")
# 将保存的数组转换为图像并保存
img_load = Image.fromarray(np.uint8(img_arr_load))
img_load.save("test_load.png")
上面的代码演示了如何将图片保存为npy格式,并从文件中读取回来。首先,使用PIL库打开一张图像(test.png),并将其转换为NumPy数组。然后使用NumPy保存为npy格式。最后,我们再次将保存的NumPy数组转换回图像,然后将其保存(test_load.png)。
示例2:保存和读取模型参数
import numpy as np
import tensorflow as tf
# 创建一个简单的神经网络
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10)
])
# 编译模型
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=5)
# 保存权重为npz格式
model.save_weights('model.npz')
# 加载权重
model.load_weights('model.npz')
# 预测输出
model.predict(x_test)
上面的代码演示了如何使用NumPy保存神经网络的权重,并从文件中读取回来。首先,我们创建了一个简单的神经网络,然后编译和训练它。然后,我们使用model.save_weights()
保存训练后的权重为npz格式。最后,我们使用model.load_weights()
从文件中加载权重,并使用model.predict()
进行预测输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 数据保存为npy和npz格式并读取的完整代码 - Python技术站