import numpy as np
a = np.eye(2)
b = np.array([1,1],[0,1])
my_list = [a, b]
a in my_list
반환 true
하지만 b in my_list
반환 "에 ValueError가 포함되어 있는지 여부를 찾기 :. 두 개 이상의 요소를 배열 모호의 진리 값을 a.any() 또는 a.all를 (사용) ". 배열을 문자열이나 목록으로 먼저 변환하여이 문제를 해결할 수 있지만 더 좋게 (Pythonic) 더 좋은 방법이 있습니까?목록은 특정 NumPy와 배열을
>>> a == b
array([[ True, False],
[ True, True]], dtype=bool)
당신은 순수한 부울 값으로 배열을 비교하는 .array_equal()
를 사용
단락으로 인해 첫 번째 값 (위에서 'a in my_list'와 같이)을 검사하면 그 이유는 무엇입니까? 배열의 모든 요소가 첫 번째 검사에서 참이면 나머지를 확인하지 않습니다 목록의? –
@ChrisMidgley : 네, 단락 중입니다 ('any()'함수도 단락 중입니다, btw). 또한 모든 요소가 True이면 부울 값이 True임을 명확히 알 수 있습니다. 그러나 True와 False가 혼합 된 경우 NumPy는 암시 적 변환을 결정할 수 없으므로 오류가 발생합니다. – kennytm