使用 savez 命名 numpys 关键字,同时使用任意数量的参数

use*_*453 2 python numpy

我想用定义的名称保存任意数量的 np.arrays 。这是我的示例,考虑到我有一个包含三个的姓名列表和(当然)三个数组要保存:

import numpy as np

l = [np.random.random_integers(5, size = (3., 2.)), np.random.random_integers(5, size = (3., 2.)), np.random.random_integers(5, size = (3., 2.))]
lN = ['a', 'b', 'c']

a = np.savez('test.npz', *[l for i in l])
b = np.load('test.npz')
print b.keys()
Run Code Online (Sandbox Code Playgroud)

输出:

['arr_1', 'arr_0', 'arr_2']
Run Code Online (Sandbox Code Playgroud)

那么如何将名单映射lN到我的数组,并以正确的名称保存呢?

hpa*_*ulj 5

np.savez('test.npz',**{name:value for name,value in zip(lN,l)})
Run Code Online (Sandbox Code Playgroud)

如果要指定名称,请使用参数的关键字 type。在这里,我通过扩展(使用**)字典来做到这一点。我还使用列表理解的较新字典版本。