2016-12-07 3 views
0

많은 사람들에게 간단 할 질문이 있습니다. 나는 numpy와 python에 꽤 새롭다. 그래서 만일 당신이 나를 도와 줄 수 있으면, 그것은 톤을 의미 할 것이다! 나는 np.logical_and를 얻는다.파이썬에서 numpy를 사용하는 for 루프의 부울 함수

import numpy as np 
edges= np.arange(7) 
a_edges= np.arange(5) 

for i in range(2): 
    indexes = np.logical_and((edges>=a_edges[i]),(edges<a_edges[i+1])) 

print(indexes) 
[False* True False False False False False] 

나의 질문은 다음과 같다. 이 출력은 어떻게됩니까? 예를 들어, 결과의 첫 번째 배열 인 False * (별표로 표시)는 모든 i 범위 (0 ~ 2)에 대해 부울 함수를 모두 충족하지 않는 첫 번째 '모서리'배열을 말하고 있습니까?

사실이라면 '가장자리'의 두 번째 배열이 모든 부울 논리를 충족시키지 않지만 사실입니다.

예를 들어, edges [1] = 1입니다. i = 0 인 경우 edges [1]은 후자의 논리를 충족하지 않으므로 false입니다. 그러나 i = 1 인 경우 edges [1]은 참입니다. 전반적으로 거짓 일 것입니다 ......

잘 이해 못하겠습니까?

미리 감사드립니다. 시시

답변

0

당신은 지금 당신이보고있는 것은 i=1의 결과, indexes 루프가 반복 될 때마다 덮어 씁니다. edges 1과 다른 모든 것들에 대한 False 때 감안할 때, 당신의 표현은

indexes = np.logical_and(edges>=a_edges[1], edges<a_edges[2]) 

# equivalent to 
indexes = np.logical_and(edges>=1, edges<2) 

, True된다.

+0

잠깐, 범위 (2)로 인해 i가 0 또는 1이 될 것이라고 생각했습니다. –

+0

'range (2)'는'[0, 1]'과 등가를 반환합니다. 그래서 먼저'i = 0'으로 실행하고, 당신의 경우'i = 1'로 다시 실행하고'indexes'를 덮어 씁니다. – Iluvatar

+0

그러나 i = 0 일 때 edges [1]이 참이 아닌 경우. 그게 어떤 역할을합니까? –