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