2017-01-14 6 views
4

어떤 값이 주어진 값보다 큰지 마스크하는 비트 마스크 벡터를 만들고 싶습니다. [1, 2, 3, 4, 5] * [> 3,> 3,> 3,> 3,> 3] = [0, 0, 0, 1, 1] 나는 행렬 연산을위한 더 빠른 계산 시간을 얻기 위해 theano에서 이것을 실행할 수 있기를 원합니다. 이 비트 마스크를 생성하기 위해 비트 연산자 또는 비트를 사용하여 작성할 수있는 선형 대수학 프로 시저가 있습니까? 현재이 행렬을 반복하고 있으며 더 많은 행렬 곱셈을 요구하는 theano를 사용하여 GPU로 계산을 이동하고 싶습니다. 어떤 도움을 주셔서 감사합니다.비트 연산자와 행렬 곱셈

+1

빼기 3을 당신에게서 벡터를하고 볼 수 있습니다 사인 비트? – DyZ

답변

2

매트릭스간에 논리 연산을 통해 원하는 것을 정확하게 얻을 수 있습니다. 예를

를 들어
print((np.r_[1, 2, 3, 4, 5] > 3)) 

[False False False True True] 

을 줄 것이다 그리고 당신은 정수를 원하는 경우

print((np.r_[1, 2, 3, 4, 5] > 3).astype(int)) 

을 얻을

[0 0 0 1 1] 
+1

대단히 감사합니다! 이것은 내가 필요한 것입니다! – Kyle