내가 인수 tiling
에 비해 다음과 같은 기능을 벡터화하기 위해 노력하고있어 평가 :파이썬 functools.partial 인수
def find_tile(x,tiling):
"""
Calculates the index of the closest element of 'tiling' to 'x'.
tiling: array of grid positions
x: variable of the same type as the elements of tiling
"""
return np.argmin(np.linalg.norm(tiling - x, axis=1))
예를 들어, 함수의 비 벡터화 버전은 다음 인수를 받아 들일 수를
tiling = np.array([[i,j] for i in xrange(3) for j in xrange(3)])
x = np.array([1.2, 2.7])
나는 x
이 하나의 벡터로 남아 내가 인수 목록을 전달할 수 있도록, 가장 빠른 vectorisation을 찾는 데 관심 tiling
map(functools.partial(find_tile, x=x), tilings)
, x
가 배열 또는 뭔가되는 문제가있다 : map
및 functools.partial
를 사용하여 다음
tilings = (tiling + np.random.uniform(0,1,2) for j in xrange(3))
과 :
그래서 나는 발전기를 사용하여 여러 타일링을 정의하는 시도 오류가 발생하는 경우 :
Traceback (most recent call last):
File "main.py", line 43, in <module>
inds = map(functools.partial(find_tile, x=x), ts)
TypeError: find_tile() got multiple values for keyword argument 'x'
누군가가 나를 어떻게 설명 할 수 있습니까? 그 주위에?
또한, 다른 빠른 방법이하는 것입니다이 (아마도 다시 쓰기 기능 find_tile
?)