Преобразование шестнадцатеричной строки в int в Python

Если вы используете одно и то же имя фрейма данных и переменных, вы можете (по крайней мере для lm() и glm()) использовать функцию update для сохраненной модели:

Df <- data.frame(X=1:10,Y=(1:10)+rnorm(10))

model <- lm(Y~X,data=Df)
model

Df <- rbind(Df,data.frame(X=2:11,Y=(10:1)+rnorm(10)))

update(model)

Это без курса, без какой-либо подготовки данных и т. Д. Он просто повторно использует набор спецификаций модели. Имейте в виду, что если вы измените контрасты в то же время, новая модель будет обновляться новыми контрастами, а не старыми.

Таким образом, использование сценария в большинстве случаев является лучшим ответом. Можно включить все шаги в функцию удобства, которая просто принимает фреймворк данных, поэтому вы можете запустить сценарий, а затем использовать эту функцию в любом новом наборе данных. См. Также ответ Гэвина на это.

670
задан Aaron Hall 14 May 2016 в 02:52
поделиться

4 ответа

Без 0x префикс, необходимо определить основу явно, иначе нет никакого способа сказать:

x = int("deadbeef", 16)

С 0x префикс, Python может отличить шестнадцатеричное число и десятичное число автоматически.

>>> print int("0xdeadbeef", 0)
3735928559
>>> print int("10", 0)
10

(Вы должны , определяют 0 как основу для вызова этого предполагающего префикс поведения; исключение второго параметра означает принимать основу 10.)

954
ответ дан Dan Lenski 14 May 2016 в 02:52
поделиться

int(hexString, 16) добивается цели и работает с и без 0x префикса:

>>> int("a", 16)
10
>>> int("0xa",16)
10
144
ответ дан El Developer 14 May 2016 в 02:52
поделиться

Для любой данной строки s:

int(s, 16)
44
ответ дан Jorge Ferreira 14 May 2016 в 02:52
поделиться

шестнадцатеричное число Дескрипторов, восьмеричное, двоичное, международное, и плавающее

Используя стандартные префиксы (т.е. 0x, 0b, 0, и 0o), эта функция преобразует любую подходящую строку в число. Я ответил на это здесь: https://stackoverflow.com/a/58997070/2464381, но вот необходимая функция.

def to_number(n):
    ''' Convert any number representation to a number 
    This covers: float, decimal, hex, and octal numbers.
    '''

    try:
        return int(str(n), 0)
    except:
        try:
            # python 3 doesn't accept "010" as a valid octal.  You must use the
            # '0o' prefix
            return int('0o' + n, 0)
        except:
            return float(n)
0
ответ дан 22 November 2019 в 21:35
поделиться
Другие вопросы по тегам:

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