2017-10-08 69 views
1

的array_like我有下面的代碼在Python3:更改爲numpy.dot反覆

matrix = np.array([[1,2,3], 
        [2,3,4], 
        [5,3,4]]) 

    sig_d1 = np.array([[1, 0, 0], 
        [0, 0, -1], 
        [0, -1, 0]]) 


sig_d2 = np.array([[1, 0, 0], 
        [0, 0, 1], 
        [0, 1, 0]]) 

for i in range(1,3): 
    product=np.dot(sig_d+i,matrix) 

不過,我發現了錯誤:

product = np.dot(sig_d+i,matrix.transpose()) 
    NameError: name 'sig_d' is not defined 

有人可以給予一定的支持?

+0

看看錯誤信息 – Matthias

回答

1

Python不允許您按照您嘗試的方式動態訪問變量。做到這一點的最好方法是將數組放入字典中,並通過鍵字符串訪問值。

array_dict = {'sig_d1' : sig_d1, 'sig_d2' : sig_d2} 

for i in range(1,3): 
    product = np.dot(array_dict['sig_d{}'.format(i)], matrix) 

如果你有多個陣列,我建議你初始化array_dict,可能通過一個循環或字典理解的更聰明的方式。

+0

我明白了! 所以,我試圖基於此實現。 非常感謝 –