6 매개 변수 함수의 매개 변수 공간을 실행하여 복잡한 동작을 시도하기 전에 숫자 동작을 연구하려고하므로 효율적인 방법을 찾고 있습니다.
내 함수는 6-dim numpy 배열이 주어진 float 값을 입력으로 사용합니다. 처음에 시도한 것은 다음과 같습니다.
먼저 2 개의 배열을 사용하고 두 배열의 모든 값 조합으로 배열을 생성하는 함수를 만들었습니다.
from numpy import *
def comb(a,b):
c = []
for i in a:
for j in b:
c.append(r_[i,j])
return c
그런 다음 reduce()
동일한 배열의 m 복사본에 적용했습니다.
def combs(a,m):
return reduce(comb,[a]*m)
그런 다음 내 기능을 다음과 같이 평가합니다.
values = combs(np.arange(0,1,0.1),6)
for val in values:
print F(val)
이것은 작동하지만 너무 느립니다. 나는 매개 변수의 공간이 크다는 것을 알고 있지만 그렇게 느려서는 안됩니다. 이 예제에서는 10 6 (백만) 포인트 만 샘플링 했으며 배열을 만드는 데 15 초 이상이 걸렸습니다 values
.
numpy 로이 작업을보다 효율적으로 수행하는 방법을 알고 있습니까?
F
필요한 경우 함수 가 인수를 취하는 방식을 수정할 수 있습니다 .