Задать вопрос
@Sergey6661313

Есть ли быстрый аналог перевода байта в массив чисел?

Изначально имеется число (int) от нуля до 255 (это "красность" цвета пикселя на экране)
Хочу скормить его нейронной сети, но все сети воспринимают почему то только массивы битов.
Поэтому ищю способ быстрого его преобразования.
Сам решал задачу в лоб и естественно оно супер тормозит...

i = 10                          # мой цвет пиксела. например 10
b = bin(i)                      # преобразуем в бинарный вид
text = str(b)[2:]               # делаем текстом и выдераем '0b'
разница = 8 - len(text)         # ищю сколько нехватает нулей
if len(text) > 0:               # и если нулей не хватает,
    for i in range(разница):    # то добавляем столько нулей
        text = "0" + text       # добавляем нули перед текстом.

color = list(map(int, text))
print(color)                    # получаем [0, 0, 0, 0, 1, 0, 1, 0]


Может есть вариант лучше?
Или если в сети варианты где нейронке скармливают цвет пиксела прямо как он есть?
  • Вопрос задан
  • 231 просмотр
Подписаться 2 Оценить 5 комментариев
Решения вопроса 1
@deliro
In [1]: def f(i):
   ...:     for bit in range(8):
   ...:         yield (i >> bit) & 1

В обратном порядке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы