我有一个大小为4x400
的numpy数组。我想将一个函数应用于这个numpy数组的所有行对。
功能:
def func(vector1,vector2):
...
...
return X
其中X
是浮点值。
所以最后我会得到一个长度为10的向量。
在没有使用循环的情况下,有效(快速)有没有办法?
答案 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 ..然后在所有生成的对上应用您的函数