gpt4 book ai didi

python - Numpy:逐行减去 2 个 numpy 数组

转载 作者:行者123 更新时间:2023-11-28 21:05:53 24 4
gpt4 key购买 nike

我有 2 个 numpy 数组 a 和 b,如下所示:

a = np.random.randint(0,10,(3,2))
Out[124]:
array([[0, 2],
[6, 8],
[0, 4]])
b = np.random.randint(0,10,(2,2))
Out[125]:
array([[5, 9],
[2, 4]])

我想从 a 中的每一行中减去 b 中的每一行,所需的输出形状为 (3,2,2):

array([[[-5, -7],        [-2, -2]],

[[ 1, -1], [ 4, 4]],

[[-5, -5], [-2, 0]]])

我可以使用:

print(np.c_[(a - b[0]),(a - b[1])].reshape(3,2,2))

但我需要一个完全矢量化的解决方案或一个内置的 numpy 函数来执行此操作。

最佳答案

只需使用 np.newaxis(它只是 None 的别名)向 a 添加一个单例维度,让广播完成其余的工作:

In [45]: a[:, np.newaxis] - b
Out[45]:
array([[[-5, -7],
[-2, -2]],

[[ 1, -1],
[ 4, 4]],

[[-5, -5],
[-2, 0]]])

关于python - Numpy:逐行减去 2 个 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43412007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com