를 사용하여 I 코드 가지고너무 많은 인덱스 np.where
a=b=np.arange(9).reshape(3,3)
c=np.zeros(3)
for x in range(3):
c[x]=np.average(b[np.where(a<x+3)])
c
의 출력은 대신 루프의 >>>array([ 1. , 1.5, 2. ])
를, I는 (사용 어레이 싶어 벡터 라이 제이션), 다음 코드를 작성했습니다.
a=b=np.arange(9).reshape(3,3)
c=np.zeros(3)
i=np.arange(3)
c[i]=np.average(b[np.where(a<i[:,None,None]+3)])
그러나 IndexEr ROR : a<i[:,None,None]+3
에 관해서는 배열
너무 많은 인덱스를 올바르게
array([[[ True, True, True],
[False, False, False],
[False, False, False]],
[[ True, True, True],
[ True, False, False],
[False, False, False]],
[[ True, True, True],
[ True, True, False],
[False, False, False]]], dtype=bool)
을 보여줍니다하지만 b[np.where(a<i[:,None,None]+3)]
를 사용할 때, 다시 IndexError 보여줍니다 배열에 대한 너무 많은 지수. c
의 올바른 출력을 가져올 수 없습니다.
합계 또는 평균은 단지 예제 일 뿐이므로 실제로는 'b [np.where (a
@kinderchan 올바르게 이해하면 다음을 사용할 수 있습니다 : np.broadcast_to (b, mask.shape) [mask]? – Divakar
시도해 보았지만 작동하지 않으며 b [mask, i [:, None]]도 사용합니다. –