2017-01-14 22 views
4

Я хочу создать вектор битовой маски, который маскирует, какие значения больше заданного значения. Что-то вроде [1, 2, 3, 4, 5] * [> 3,> 3,> 3,> 3,> 3] = [0, 0, 0, 1, 1]. Я хочу, чтобы иметь возможность запускать это на anano, чтобы получить более быстрое время вычисления для операций с матрицей. Существует ли процедура линейной алгебры, которая может быть записана с помощью побитовых операторов или бит для создания этой битовой маски? В настоящее время я просматриваю эту матрицу, и я хотел бы переместить вычисление на графический процессор с использованием theano, который требует большего умножения матрицы. Спасибо за любую помощь.Матричное умножение с побитовыми операторами

+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

 Смежные вопросы

  • Нет связанных вопросов^_^