繁体   English   中英

将操作应用于python中二维numpy数组的每个向量

[英]Applying an operation to each vector from 2d numpy arrays in python

我需要它用于二维数组,但也会对更高维度感兴趣。 如果我有两个 numpy 2DArrays 让我们说 A 和 B 以及一个函数 f 它接受 2 个向量并输出一个标量。 性能很重要,并且 numpy 数组操作非常快,所以我如何获得矩阵:

(f(a1,b1),f(a1, b2)...)
(f(a2,b1), f(a2,b2)...)
(...                  )

a(i) 和 b(i) 是一维数组/向量

通过应用类似 f(A,B) 的东西而不使用任何循环。

使用某些方法我可以使用 axis=1 但我如何定义我自己的函数或者有其他方法?

最简单、最有效的解决方案是使用 for 循环。 np.vectorize 在这里对您没有帮助,因为它将标量传递给函数。

假设您的数组有两列:

for a,b in zip(A,B):
    print(f(a[0],b[0]))
    print(f(a[1],b[1]))

将打印您想要返回的 f 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM