0
我有简单的函数,它看起来像这样:Python:如何重写函数以用于数组?
def summer_scalar(x):
a = np.array([1,2,3])
b = np.array([7,8,9])
return sum(a - b * x)
它的工作原理,但如果我想与阵列使用它,例如numpy的阵列出现问题。如果我提交numpy的阵列我得到错误:
summer_scalar(np.array([7,8,9,7]))
ValueError: operands could not be broadcast together with shapes (3,) (4,)
我猜的原因是,它把我所有的数组作为同龄人,但他们都没有:从参数元素应处理一个一个后形成输出数组,应该像以前一样处理来自a和b的争论。所以它试图对不同大小的数组进行求和并失败。
我该怎么办?
我可以重写我的方法:
def summer(x):
a = np.array([1,2,3])
b = np.array([7,8,9])
s = 0
for ai,bi in zip(a,b):
s = s + ai - bi* x
#print ai,bi,s
return s
这工作。
问题是:有没有更好的方法来修改我的矢量操作方法?