在python中,我希望從1-dim數組中逐行減去2-dim數組。Python和numpy:逐行減去1-dim數組中的2-dim數組
我知道如何用'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]
而且這裏的東西,不工作的例子,通過這個替換「for」循環:
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
竇您有任何建議?
作爲一個建議,我會避免做一個名爲'j'的列表變量。語法方面,這是可以的,但大多數程序員在一個循環中爲計數器保留字母「i,j,k」,從而導致一些可能的混淆。 – Hooked 2012-04-16 17:39:51