Инициализация массива нулей с использованием цикла for - PullRequest
0 голосов
/ 18 сентября 2018

Мне требуется создать список массивов с нулями, чтобы выполнить что-то следующим образом.

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 голосов
/ 18 сентября 2018

Хорошо бы вы использовали словарь?

Dict = {}

list = ['a', 'b' , 'c', 'd' , 'e']
    for i in list:
       Dict[i] = np.zeros([10,1])

Различные i теперь являются вашими словарными ключами, поэтому после цикла for вы можете получить нужный массив, используя a = Dict["a"].Я уверен, что есть более элегантное решение.

0 голосов
/ 18 сентября 2018

Вы можете использовать следующий код, который инициализирует его в встроенном словаре

  mydict = { i:np.zeros([10,1]) for i in ['a', 'b' , 'c', 'd' , 'e']  }

    print(mydict['a'])
0 голосов
/ 18 сентября 2018

Лучше всего использовать словарь:

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.]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...