我需要用于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,但是如何定义自己的函数,或者还有其他方法?
答案 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的值。