2016-11-28 105 views
0

我试图计算跨矩阵的行并将该值存储在不同的矩阵中。这是做这件事的最有效的方法,或者是否有我应该知道的内置函数。python numpy:计算跨矩阵的行

import numpy as np 
a = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) 

def calc_across(matrix): 
    frame = [] 
    for row in matrix: 
     frame.append([row[0] * row[1]/2. * row[2]/3]) # period present to generate floats 
    return np.array(frame) 

b = calc_across(a) 

如果我做print b我得到以下矩阵:

b = [ [1.], [20.], [84.] ] 

如果a是3×3,b必须是3×1(3行,1列)。如果a是10x3,b必须是10×等

回答

2

尝试:

b = np.prod(a/[1.0,2.0,3.0],axis=1, keepdims=True) 
b 

# # array([[ 1.], 
     # [ 20.], 
     # [ 84.]]) 

我希望这有助于。