2024-04-19 03:47:55 发布
网友
我想知道矢量化是否可以同时应用于两个矢量输入。。。在
考虑以下简单函数:
def f(x,y): return(x+y,x-y)
我想给出一个这样的函数,两个向量x=arange(3)和{}。 我的本能是定义a,b=f(x,y),但是python告诉我these operators could not be broadcast with shapes (3) (2)。很明显,如果y(或x)是标量,这是可行的。在
x=arange(3)
a,b=f(x,y)
these operators could not be broadcast with shapes (3) (2)
y
x
怎么做?有吗?在
如果向量x和y的维数相同,这将很好地工作。 您有以下代码设置:
In [16]: x=arange(3) In [17]: x Out[17]: array([0, 1, 2]) In [18]: y=arange(4,6) In [19]: y Out[19]: array([4, 5])
显然,x+y没有定义。因为x有3个实体(维度),而y只有2个。在
考虑稍作修改:
现在,x+y和x-y按预期工作。在
现在你的功能也可以正常工作了。在
In [24]: def f(x,y): ....: return (x+y,x-y) ....: In [25]: f(x,y) Out[25]: (array([4, 6, 8]), array([-4, -4, -4]))
如果向量x和y的维数相同,这将很好地工作。 您有以下代码设置:
显然,x+y没有定义。因为x有3个实体(维度),而y只有2个。在
考虑稍作修改:
^{pr2}$现在,x+y和x-y按预期工作。在
现在你的功能也可以正常工作了。在
相关问题 更多 >
编程相关推荐