我通常将数据保存在python的npz文件中。如何编写一个加载npz文件并自动创建.npz文件中存在的数组的函数。例如,假设在名为A的文件中存在三个数组BCsome_data.npz

我要的功能是将npz文件加载为

data1 = np.load('some_data.npz')


然后自动创建三个名为data1Adata1Bdata1C的数组,这些数组存储原始A文件中的数组BC.npz。这该怎么做?

最佳答案

如果要创建名称,请将数组存储在dict中:

a1 = np.array([1,2,3])
a2 = np.array([4,5,6])
a3 = np.array([7,8,9])

np.savez("test", A=a1,B=a2,C=a3)
a = np.load("test.npz")
d = dict(zip(("data1A","data1B","data1C"), (a[k] for k in a)))
print(d)
{'data1A': array([4, 5, 6]), 'data1C': array([7, 8, 9]), 'data1B': array([1, 2, 3])}


如果要创建键而不显式传递名称:

a1 = np.array([1, 2, 3])
a2 = np.array([4, 5, 6])
a3 = np.array([7, 8, 9])

np.savez("test", A=a1,B=a2,C=a3)
a = np.load("test.npz")

d = dict(zip(("data1{}".format(k) for k in a), (a[k] for k in a)))
print(d)

关于python - 从python中的numpy npz文件加载数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32682928/

10-12 17:43