Pythonでは、1次元配列から2次元配列を1行ずつ減算したいと考えています。Pythonとnumpy:行単位を引く1次元配列から2次元配列
私は 'for'ループとインデックスを使ってそれを行う方法を知っていますが、numpy関数を使う方が速いと思います。しかし、私はそれを行う方法を見つけませんでした。動作しない何かの例は、このことにより、「for」ループ置き換え、ここれる
from numpy import *
x=array([[1,2,3,4,5],[6,7,8,9,10]])
y=array([20,10])
j=array([0, 1])
a=zeros([2,5])
for i in j :
... a[i]=y[i]-x[i]
をそして:あなたが提案を持っている
a=y[j]-x[j,i]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape
ドウここでの例では、「for」ループであります?
提案として、私は 'j'という名前のリスト変数を作ることを避けるでしょう。構文的にはこれは問題ありませんが、ほとんどのプログラマはループ内のカウンタに 'i、j、k 'という文字を予約しているので、ここで混乱する可能性があります。 – Hooked