我需要创建一个包含零的numpy数组列表,以完成以下操作。
import numpy as np
a = np.zeros([10,1])
b = np.zeros([10,1])
c = np.zeros([10,1])
d = np.zeros([10,1])
e = np.zeros([10,1])
因此,我创建了一个变量名列表,并如下运行了一个for循环
list = ['a', 'b' , 'c', 'd' , 'e']
for i in list:
i = np.zeros([10,1])
在执行上述步骤时,我知道我错了或遗漏了一些东西。有人可以告诉我什么是错误以及正确的解决方法吗?
答案 0 :(得分:2)
最好的方法是使用字典:
list = ['a', 'b' , 'c', 'd' , 'e']
mydict = {}
for i in list:
mydict[i] = np.zeros([10,1])
>>>mydict['a']
array([[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.]])
使用先前的语句i = np.zeros([10,1])
,您只是将i
的值重新分配给numpy数组,而没有实际将数组分配给“变量”,如下所示:
list = ['a', 'b' , 'c', 'd' , 'e']
mydict = {}
for i in list:
i= np.zeros([10,1])
print i
[[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]
[ 0.]]
答案 1 :(得分:1)
使用字典可以吗?
Dict = {}
list = ['a', 'b' , 'c', 'd' , 'e']
for i in list:
Dict[i] = np.zeros([10,1])
各种i
现在就是字典键,因此在for循环之后,您可以使用a = Dict["a"]
检索所需的数组。我敢肯定,虽然有一个更优雅的解决方案。
答案 2 :(得分:0)
您可以使用以下代码在嵌入式词典中对其进行初始化
mydict = { i:np.zeros([10,1]) for i in ['a', 'b' , 'c', 'd' , 'e'] }
print(mydict['a'])