2013-04-26 23 views

答えて

15

あなたは、アレイ形状インデックスタプルになし又はnumpy.newaxisを使用しない(1、2)に対するBの配列を変換する必要がある:

import numpy 
a = numpy.array([[2,3,2],[5,6,1]]) 
b = numpy.array([3,5]) 
c = a * b[:, None] 

ここdocumentです。

+0

ありがとうございます! Pythonでこの構文の名前は何ですか: '[:、None]'? –

+1

@Ashwinでは、 'numpy.newaxis'を検索することができます。 – HYRY

+0

ありがとう!あなたの答えを受け入れました:-) –

1

別の戦略は、reshapeに 二番目の配列であるため、それは最初の配列としての次元の同じ数を有する:

あるいは
c = a * b.reshape((b.size, 1)) 
print(c) 
# [[ 6 9 6] 
# [25 30 5]] 

、二番目の配列のshape属性はその場で修正することができます。

b.shape = (b.size, 1) 
print(a.shape) # (2, 3) 
print(b.shape) # (2, 1) 
print(a * b) 
# [[ 6 9 6] 
# [25 30 5]] 
関連する問題