2014-11-05 4 views
0

Я бы применил np.dot с «для цикла», но ошибка: у объекта «tuple» нет атрибута «shape» ... У меня есть большие массивы, для меня это был лучший способ лечения моей проблемы.Python - np.dot in for loop

import numpy as np 

M = np.array([[ 1.15808013, 0.06208023, 4.05766652], 
     [ 0.00440335, 1.10580116, 2.19747653]]) 


test=np.array([[[ 1., 1., 2., 2.], 
     [ 1., 1., 2., 2.], 
     [ 3., 3., 4., 4.], 
     [ 3., 3., 4., 4.]], 

     [[ 5., 5., 6., 6.], 
     [ 5., 5., 6., 6.], 
     [ 7., 7., 8., 8.], 
     [ 7., 7., 8., 8.]], 

     [[ 1., 1., 1., 1.], 
     [ 1., 1., 1., 1.], 
     [ 1., 1., 1., 1.], 
     [ 1., 1., 1., 1.]]]) 

for i in range(test.shape[1]): 
    for j in range(test.shape[2]): 
     xtp = np.dot(M,test[:,i,j]) 
+2

Я не получил сообщение об ошибке на вашем примере. Он отлично работает – freude

+0

Не было ошибки на Python 2.7.3 с NumPy 1.6.2. Какие версии вы используете? –

+0

Можете ли вы разместить _full_ traceback? – mgilson

ответ

0

Ответ, чтобы получить все мои координаты:

frametemp = [] 

for i in range(test.shape[1]): 
    for j in range(test.shape[2]): 
     xtp = np.dot(M,test[:,i,j]) 
     frametemp.append(xtp) 

frametemperature = np.asarray(frametemp)