2017-10-08 2 views
1

J'ai le code ci-dessous dans python3:Modification du array_like pour numpy.dot itérativement

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) 

Cependant, je me fais l'erreur:

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

Quelqu'un pourrait-il donner un soutien?

+0

Regardez le message d'erreur – Matthias

Répondre

1

Python ne vous permet pas d'accéder dynamiquement aux variables comme vous le souhaitez. La meilleure façon de le faire serait de placer vos tableaux dans un dictionnaire et d'accéder aux valeurs par clé.

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) 

Si vous avez plus de tableaux, je recommande une façon plus intelligente de votre initialisant array_dict, peut-être à travers une boucle ou compréhension dict.

+0

Je l'ai eu! Donc, j'essaie de mettre en œuvre en fonction de cela. Merci beaucoup de –