==
연산자로 브로드 캐스트를 사용하는 한 가지 방법이 있습니다.
먼저 테스트 배열을 만듭니다.
In [27]: np.random.seed(1)
In [28]: a = np.random.choice(list("AABC"), size=(3,9))
In [29]: a
Out[29]:
array([['A', 'C', 'A', 'A', 'C', 'A', 'C', 'A', 'C'],
['A', 'A', 'A', 'A', 'C', 'A', 'A', 'B', 'A'],
['B', 'A', 'B', 'A', 'B', 'A', 'C', 'A', 'B']],
dtype='|S1')
각 요소를 해당 열의 맨 위에있는 요소와 비교하십시오. a[0]
이 첫 번째 행입니다. 1d 배열입니다 (shape는 (9,) 임). 이와 같이 두 개의 배열을 가지고 ==
을 사용할 때, a[0]
은 첫 번째 행의 복사본으로 채워진 모양 (3,9)의 배열처럼 동작하는 "브로드 캐스트"입니다.
In [30]: a == a[0]
Out[30]:
array([[ True, True, True, True, True, True, True, True, True],
[ True, False, True, True, True, True, False, False, False],
[False, False, False, True, False, True, True, True, False]], dtype=bool)
이제 비교 결과의 첫 번째 축을 따라 all
을 사용하십시오.
In [31]: np.all(a == a[0], axis=0)
Out[31]: array([False, False, False, True, False, True, False, False, False], dtype=bool)
위대한 '벡터화 된'솔루션! 그게 내가 찾던거야, 고마워! – huckleg