📚Python Books
📚Python библиотека admin - @workakkk @ai_machinelearning_big_data - машинное обучение @programming_books_it - бесплатные it книги @pythonl - 🐍 @ArtificialIntelligencedl - AI @datascienceiot - ml РКН: clck.ru/3FmsTi
Show more📈 Analytical overview of Telegram channel 📚Python Books
Channel 📚Python Books (@pythonlbooks) is an active participant. Currently, the community unites 33 356 subscribers, ranking 3 941 in the Technologies & Applications category and 19 117 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 33 356 subscribers.
According to the latest data from 05 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -177 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 11.00%. Within the first 24 hours after publication, content typically collects 2.70% reactions from the total number of subscribers.
- Post reach: On average, each post receives 3 669 views. Within the first day, a publication typically gains 901 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
- Thematic interests: Content is focused on key topics such as сотрудников, курса, инструменты, использовать, docker.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“📚Python библиотека
admin - @workakkk
@ai_machinelearning_big_data - машинное обучение
@programming_books_it - бесплатные it книги
@pythonl - 🐍
@ArtificialIntelligencedl - AI
@datascienceiot - ml
РКН: clck.ru/3FmsTi”
Thanks to the high frequency of updates (latest data received on 06 October, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Meta.indexes можно использовать для собственных миграций
Оказывается, models.Index в Django можно превратить почти в универсальную migration-операцию.
Идея:
class CustomMigrationOperation(models.Index):
def create_sql(self, model, schema_editor, **kwargs):
...
def remove_sql(self, model, schema_editor, **kwargs):
...
А затем добавить её прямо в модель:
class Meta:
indexes = [CustomMigrationOperation()]
После этого makemigrations сам подхватит изменение, а migrate выполнит нужный SQL.
Почему это работает:
Index уже умеет генерировать SQL через create_sql() и remove_sql().
Так можно описывать не только индексы, но и:
triggers
table comments
security labels
другие schema-level настройки
Автор использовал этот приём для PostgreSQL Anonymizer, чтобы правила анонимизации жили рядом с моделью и автоматически попадали в миграции.
Подход довольно hacky, но как способ расширить механизм миграций Django — очень интересный.
https://www.better-simple.com/django/2026/09/02/nifty-feature-use-index-for-custom-migrations/fit(), а реально понять математику и инженерную логику ML.
PDF:
https://smlbook.org/book/sml-book-draft-latest.pdf
#DataScience #MachineLearning #ML #Mathematics #Algorithmsufunc начинали конкурировать за внутренние структуры NumPy, счётчики ссылок и выделение памяти.
В NumPy 2.5 разработчики устранили несколько ключевых узких мест:
- таблицу диспетчеризации ufunc заменили на lock-free concurrent hash map;
- часть общих служебных объектов сделали «бессмертными», снизив конкуренцию при подсчёте ссылок;
- выделение памяти перевели на PyMem_RawMalloc и PyMem_RawFree.
Теперь независимые операции можно масштабировать обычными потоками:
from concurrent.futures import ThreadPoolExecutor
import numpy as np
arrays = [
np.random.rand(5_000_000)
for _ in range(8)
]
with ThreadPoolExecutor(max_workers=8) as pool:
results = list(pool.map(np.sin, arrays))
Главное преимущество перед multiprocessing - массивы не нужно сериализовать и копировать между процессами.
Потоки работают в одном адресном пространстве, поэтому могут эффективнее использовать многоядерный CPU и общую память.
Но есть важная оговорка:
free-threaded не означает автоматически thread-safe.
Одновременное изменение одного ndarray из нескольких потоков всё ещё может привести к гонкам, повреждённым данным и падению интерпретатора.
Безопаснее использовать:
- отдельный массив для каждого worker;
- общий массив только для чтения;
- явную синхронизацию при записи.
Удалить GIL оказалось недостаточно. Чтобы Python действительно масштабировался по ядрам, пришлось перепроектировать и внутренности NumPy.
Подробнее:
https://labs.quansight.org/blog/scaling-numpy-on-free-threaded-python