v
の要素を の最初の軸に揃える必要がありますm
。これを行う 1 つの方法はv
、2D 配列に拡張し、np.newaxis/None
要素broadcasting
ごとの除算を実行するときに機能することです。また、両方の入力が整数配列であり、除算を実行しているため、要素ごとの除算を実行する前に、そのうちの 1 つを float に変換する必要があります。したがって、最終的な実装は次のようになります-
m/v[:,None].astype(float)
内部で浮動小数点変換を処理するNumPy の真の除算関数を使用すると、ユーザー レベルでの浮動小数点配列への変換を回避できます。したがって、それを使用した実装は次のようになります-np.true_divide
np.true_divide(m,v[:,None])
サンプルラン -
In [203]: m
Out[203]:
array([[1, 2],
[3, 4],
[5, 6]])
In [204]: v
Out[204]: array([10, 20, 30])
In [205]: m/v[:,None].astype(float)
Out[205]:
array([[ 0.1 , 0.2 ],
[ 0.15 , 0.2 ],
[ 0.16666667, 0.2 ]])
In [206]: np.true_divide(m,v[:,None])
Out[206]:
array([[ 0.1 , 0.2 ],
[ 0.15 , 0.2 ],
[ 0.16666667, 0.2 ]])