Python和numpy:从1dim数组中逐行减去2dim数组

2024-04-19 00:44:04 发布

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

在python中,我希望从一维数组中逐行减去一个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]

下面是一个不起作用的示例,将“for”循环替换为:

^{pr2}$

你有什么建议吗?在


Tags: 函数infromimportnumpy示例forzeros
2条回答
y[:,newaxis] - x 

应该也行。(一点)比较的好处是你关注维度本身,而不是维度的大小。在

问题是y-x有各自的形状(2) (2,5)。要进行正确的广播,您需要形状(2,1) (2,5)。我们可以使用.reshape来实现这一点,只要保留元素的数量:

y.reshape(2,1) - x

给出:

^{pr2}$

相关问题 更多 >