рассмотрим этот пример:
sample = np.array([0, 1, 2, 3, 4])
Мне нужен самый быстрый способ создания списка / массива из последних 2 цифр двоичного представления каждого значения в sample
. Таким образом, я получаю двоичное представление:
bin_sample = [bin(x) for x in sample]
>>> ['0b0', '0b1', '0b10', '0b11']
Я анализирую каждый из них следующим образом и получаю правильный вывод:
output = [bin(x)[-2:].replace('b','0') for x in sample]
>>> ['00', '01', '10', '11', '00']
Проблема в том, что это слишком медленно, я м обработки больших массивов, какие-либо предложения? Спасибо
РЕДАКТИРОВАТЬ: требуется 5 seconds
для обработки 5 million
элементов. Мне нужно взять ~ 1 second
РЕДАКТИРОВАТЬ # 2: Любая оптимизация, которая получает ~ 500%
увеличение скорости приемлемо сопоставимо с предыдущим алгоритмом.