使用for循环初始化零的numpy数组

时间:2018-09-18 12:04:08

标签: python syntax

我需要创建一个包含零的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])

在执行上述步骤时,我知道我错了或遗漏了一些东西。有人可以告诉我什么是错误以及正确的解决方法吗?

3 个答案:

答案 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'])