numpy 배열/행렬의 열에있는 모든 값이 동일한 지 확인하고 싶습니다. 는 내가 ufuncequal
의 reduce
을 사용하려고하지만, 모든 경우에 작동하지 않습니다numpy 행렬의 열에있는 값이 모두 같은지 확인하는 방법은 무엇입니까?
In [55]: a = np.array([[1,1,0],[1,-1,0],[1,0,0],[1,1,0]])
In [56]: a
Out[56]:
array([[ 1, 1, 0],
[ 1, -1, 0],
[ 1, 0, 0],
[ 1, 1, 0]])
In [57]: np.equal.reduce(a)
Out[57]: array([ True, False, True], dtype=bool)
In [58]: a = np.array([[1,1,0],[1,0,0],[1,0,0],[1,1,0]])
In [59]: a
Out[59]:
array([[1, 1, 0],
[1, 0, 0],
[1, 0, 0],
[1, 1, 0]])
In [60]: np.equal.reduce(a)
Out[60]: array([ True, True, True], dtype=bool)
왜 두 번째 경우에 중간 열은 또한 True
로 평가 않습니다, 그것은 False
을해야하는 동안?
도움 주셔서 감사합니다.
In [47]: np.all(a == a[0,:], axis = 0)
Out[47]: array([ True, False, True], dtype=bool)
:
In [46]: a == a[0,:]
Out[46]:
array([[ True, True, True],
[ True, False, True],
[ True, False, True],
[ True, True, True]], dtype=bool)
열에 해당 열의 모든 값에 해당하는 경우 공통 값을 공유한다 :
이 문제는 잠시 동안 나를 괴롭 히고 있습니다. @ Ubuntu의 솔루션은 충분히 우아하지만, 이것을 4096 ** 3 double 배열로 돌리면 어떤 메모리를 남긴 부울 배열을 얻을 수있는 것은 그리 즐겁지 않습니다. 나는'np.equal (a, a [:, 0, None])'을 사용하여 순수한 Python 구현물을 가지고 놀고 있었지만, 같은 문제로 끝난다. 그러므로 나는 이런 종류의 상황을 정확히 다루기 위해 numpy에 대한 새로운 함수'np.same'을 추가하기위한 PR 작업을하고 있습니다. –