gpt4 book ai didi

python - (m, 2), (n, 2) 数组的高效相加

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

我有两个 numpy 数组,形状为 (m, 2)x 和形状为 (n, 2) 的 y 。我想计算 (m, n, 2) 数组,在位置 (i, j) 处找到 x[i] 的总和> 和 y[j] 位于 out[i, j]。列表理解作品

import numpy

x = numpy.random.rand(13, 2)
y = numpy.random.rand(5, 2)

xy = numpy.array([
[xx + yy for yy in y]
for xx in x
])

但我想知道是否有通过 numpy.add.outer 或类似方法更有效的解决方案。

最佳答案

您可以使用 numpys 广播规则将第一个数组转换为形状 (13, 1, 2),将第二个数组转换为形状 (1, 5, 2):

numpy.all(x[:, None, :] + y[None, :, :] == xy)
# True

该数组在添加了 None 的维度上重复(因为它的长度为 1)。

因此输出的形状变为(13, 5, 2)

关于python - (m, 2), (n, 2) 数组的高效相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51397389/

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