All streams
Search
Write a publication
Pull to refresh
8
0
Андрей Сонин @andrewsonin

Студент МФТИ. Machine Learning, Python, Rust и C++

Send message
Есть ещё крайне удобный метод сериализации под названием to_pickle и соответствующая ему функция pd.read_pickle. По работе сталкивался с необходимостью сохранять датасеты величиной в десятки гигабайт, и подобная сериализация сокращала время сохранения и чтения с диска примерно в 100 раз, по сравнению с csv-форматом. И в качестве бонуса pickle-файлы обычно получаются значительно легче.

Надо сказать, что подобный метод можно использовать для сохранения любого питоновского объекта. Для этого можно использовать библиотеку, входящую в стандарт.

Ну и маленькая стилистическая ремарка:

Вместо медленного и плохо читаемого

"%d. date_from: %s, date_to: %s" % (i, date_from, date_to)

начиная с версии 3.6 можно использовать f-строки:

f"{i}. date_from: {date_from}, date_to: {date_to}"

количество вложенных уровней кода надо сокращать

Для этого можно использовать макрос ward!

let cthulhu = ward!(cthulhu, return);

Конкретно на Раст есть библиотека Pest, поддерживающая крайне удобный способ описания грамматик.

Очень дельный комментарий про PEP484, про который я совсем забыл упомянуть в статье. Спасибо!


Здесь также можно почитать о том, как применять аннотации типов в Питоне.

Соглашусь, что в этом случае я написал не совсем чётко. Привязанный тип имеет не сама переменная, а объект, на который она указывает.


В Питоне вы можете делать следующее:


>>> foo = 1
>>> type(foo)
int

>>> foo = "foo"
>>> type(foo)
str

Если говорить о типе переменной, то он является понятием динамическим, а не статическим.


Это приводит к тому, что для того, чтобы гарантировать, что в конкретном месте программы переменная foo имеет тип baz, то приходится писать бесконечные:


isinstance(foo, baz)

или


type(foo) is baz

в которых можно наделать ошибок, если случай хоть сколь-нибудь сложный.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Specialist
Middle
Python
Rust
Machine learning
Math statistics
Financial analytics