numpy
에는 많은 인덱싱 기능이 있지만 여전히 필요한 기능을 수행 할 수 없습니다.다차원 인덱싱 및 매핑
첫째, 두 개의 일차원 배열 동일한 형상의 A, I
가 있다고 가정 I
요소에 인덱스 될 수있는 1 차원 배열 B
및 세 인수 함수 f
. 그렇다면 starmap(f, zip(A, I, B[I]))
(numpy
이 아닌 순수 파이썬의 starmap
및 zip
과 같은) 결과를 얻을 수 있습니다. 지금까지 그렇게 좋은 ...
실제로 모든 배열은 두 개의 -dimensional이고 위와 같은 함수를 각 행에 적용하는 것과 같은 2 차원 결과를 얻고 싶습니다. 배열의 - 이것은 내가 지금 루프에서 무엇을하는지입니다.
그냥 루핑하는 것보다 더 좋은 방법이 있습니까?
UPD : 예를 들어
, 한 차원 배열과 :
A = np.random.randint(0, 10, size=(3,))
B = np.random.randint(0, 10, size=(5,))
I = np.random.randint(0, 5, size=(3,))
def f(a, i, b):
return (a, i, b)
print A, I, B
print list(starmap(f, zip(A, I, B[I])))
그리고 두 가지 차원에 대한 :
A = np.random.randint(0, 10, size=(2, 3))
B = np.random.randint(0, 10, size=(2, 5))
I = np.random.randint(0, 5, size=(2, 3))
def f(a, i, b):
return (a, i, b)
print A
print I
print B
print [list(starmap(f, zip(A_row, I_row, B_row[I_row])))
for A_row, I_row, B_row in zip(A, I, B)]
wrt. "주먹이 있다고 가정하십시오 ..."왜 우리에게 코드를 알려주지 않으시겠습니까? 보여라, 말하지 마라. – Veedrac
'f'는 무엇을합니까? – Jaime
@Jaime :'f'는 변경할 수없는 라이브러리의 순수한 파이썬 함수입니다. – aplavin