2016-11-28 8 views
0

行列の行全体を計算し、その値を別の行列に格納しようとしています。これを行うには、これが最も効率的な方法ですか、私が知っておく必要がある組み込み関数がありますか?私はprint bを行う場合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) 

私は、次の行列を得る:

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

aが3×3の場合、bは3×1(3行、1列)でなければなりません。 aが10x3であれば、bは10x1ではでなければならない、など

答えて

2

試してみてください。

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

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

私はこのことができます願っています。

関連する問題