Как преобразовать двоичную строку в биполярное представление в Python? - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время у меня есть двоичное число в формате «0b10100». Для использования в бинаризованной нейронной сети я хотел бы преобразовать двоичное число в биполярное, т. Е. Заменить 0 на -1, что дает представление типа «1 -1 1 -1 -1». Есть ли в Python метод по умолчанию для этого? А также в каком формате я могу получить вывод?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете удалить начальный текст ("0b"), используя обозначение среза:

s = "0b10100"
s[2:]           # "10100"

Вы можете преобразовать полученную строку в список символов, воспользовавшись тем, что строки являются итеративными, а встроенная функция list() принимает итерируемое:

list(s[2:])    # [ '1', '0', '1', '0', '0' ]

Вы можете преобразовать отдельные 1-символьные строки в целые числа с помощью встроенного int(). понимание списка позволяет вам выразить это в строке:

newlist = [int(ch) for ch in list(s[2:])]
                # [1, 0, 1, 0, 0]

Вы можете заметить, что 0/1 можно преобразовать в -1/1, удвоив входное значение и вычтя одно:

newlist = [2 * int(ch) - 1 for ch in list(s[2:])]
                # [1, -1, 1, -1, -1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...