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

时间:2019-02-23 16:48:49

标签: python arrays numpy

我需要用于2d数组,但也对更高维度感兴趣。 如果我有两个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,但是如何定义自己的函数,或者还有其他方法?

1 个答案:

答案 0 :(得分:0)

最简单,最有效的解决方案是使用for循环。 np.vectorize在这里无济于事,因为它将标量传递给函数。

假设您的数组有两列:

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

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