将函数应用于数组的每对行

时间:2014-10-28 16:02:38

标签: python arrays numpy

我有一个大小为4x400的numpy数组。我想将一个函数应用于这个numpy数组的所有行对。 功能:

def func(vector1,vector2):
    ...
    ...
    return X

其中X是浮点值。

所以最后我会得到一个长度为10的向量。

在没有使用循环的情况下,有效(快速)有没有办法?

2 个答案:

答案 0 :(得分:4)

import numpy
import itertools as it
arr=numpy.random.rand(4,400)
transposed=arr.T
values=[numpy.dot(i,j) for i, j in it.combinations(transposed, 2)]
print values

答案 1 :(得分:1)

我想你将不得不使用循环。在python中使用itertools生成所有行组合 这可以帮助您https://docs.python.org/2/library/itertools.html ..然后在所有生成的对上应用您的函数