2012-06-03 8 views
1

나는 동일한 유한하지만 부지수가 큰 두 개의 (A, B) 부울 배열을 가지며 런타임 모양과 차원에서만 알 수 있습니다.numpy 배열을 서로 매핑하는 방법은 무엇입니까?

A와 B의 해당 요소에 대한 부울 함수의 값을 계산하여 C에 저장하고 싶습니다. 마지막으로 C가 참인 튜플 목록이 필요합니다.

어떻게 가나 요?

단일 요소를 반복하고 싶지 않습니다. 얼마나 많은 차원이 존재하는지 알지 못하기 때문에 더 좋은 방법이 있어야합니다. 같은

>>> A = array([True, False, True, False, True, False]).reshape(2,3) 
>>> B = array([True, True, False, True, True, False]).reshape(2,3) 
>>> A == B 
array([[ True, False, False], 
     [False, True, True]], dtype=bool) 

는 싶었지만 :

>>> A and B 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

어떻게 "A 및 B"를받을 수 있나요?

"map", "zip", "nditer"를 시도하고 다른 방법을 찾지 못했습니다.

튜플을 사용하는 경우 부울에 대해서는 "argmax"와 같은 것이 필요하지만 아무 것도 찾지 못했습니다.

당신은 뭔가 도움이 될만한 것을 알고 있습니까?

In [5]: A & B 

array([[ True, False, False], 
     [False, True, False]], dtype=bool) 

logical_and 호출로 큰 승리 당신이 밖으로 매개 변수를 사용할 수 있다는 것입니다 :

numpy.logical_and(A,B) 

답변

3

당신은 또한 & 연산자를 사용할 수 있습니다

2

예, NumPy와의 함수가 :

In [6]: C = empty_like(A) 

In [7]: logical_and(A, B, C) 

array([[ True, False, False], 
     [False, True, False]], dtype=bool) 
관련 문제