목록과 NumPy 배열의 부울 및 비트 연산 동작 이해
소개
파이썬에서는 'and'와 '&' 연산자가 다릅니다. 목록과 NumPy 배열에서 사용될 때의 동작. 특히 비트 연산에 익숙하지 않은 경우 이러한 차이는 혼란스러울 수 있습니다.
부울 대 비트 연산
'and'는 둘 다 여부를 테스트하는 논리 연산자입니다. 피연산자의 수가 논리적으로 True입니다. 반면 '&'는 피연산자에 대해 비트 연산(예: AND, OR, XOR)을 수행하는 비트 연산자입니다.
목록 동작
목록과 함께 사용되는 경우 'and'는 목록 항목을 부울 값으로 평가합니다. 모든 항목이 True인 경우 'and'는 True로 평가됩니다. 그렇지 않으면 False로 평가됩니다. 예를 들어
mylist1 = [True, True, True, False, True] mylist2 = [False, True, False, True, False] mylist1 and mylist2 # Output: [False, True, False, True, False]
'&'는 목록에 대한 비트 연산을 지원하지 않습니다. 목록에 임의의 요소가 포함되어 있기 때문에 TypeError가 발생합니다.
mylist1 & mylist2 # Output: TypeError: unsupported operand type(s)
NumPy 배열의 동작
NumPy 배열의 동작은 다릅니다. NumPy 배열은 벡터화된 계산을 지원합니다. 즉, 여러 요소에 대해 연산을 동시에 수행할 수 있습니다.
배열에는 간단한 부울 값이 없으므로 길이가 1보다 큰 NumPy 배열에는 'and'를 사용할 수 없습니다.
import numpy as np np_array1 = np.array(mylist1) np_array2 = np.array(mylist2) np_array1 and np_array2 # Output: ValueError: The truth value of an array with more than one element is ambiguous
그러나 NumPy 부울 배열에서 '&'를 사용하여 비트 AND 연산을 수행할 수 있습니다. 요소별.
np_array1 & np_array2 # Output: array([False, True, False, False, False], dtype=bool)
요약
위 내용은 Python에서 목록 및 NumPy 배열과 함께 사용할 때 `and`와 `&`는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!