Python中多维操作的矢量化

2024-04-19 03:47:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道矢量化是否可以同时应用于两个矢量输入。。。在

考虑以下简单函数:

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)是标量,这是可行的。在

怎么做?有吗?在


Tags: 函数return定义def矢量notbe向量
1条回答
网友
1楼 · 发布于 2024-04-19 03:47:55

如果向量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个。在

考虑稍作修改:

^{pr2}$

现在,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]))

相关问题 更多 >