TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Журнал ML инженера

19 Jul 2025, 23:14

Открыть в Telegram Поделиться Пожаловаться

📍 19 июля.
——————————
Распутье ускорения
——————————

Сначала ты идёшь простым путём, пишешь df["score"] = df.apply(score_row, axis=1) и смотришь, как медленно, но уверенно тикают проценты прогресса. Всё понятно, всё под контролем. Кажется, ты приручил данные.

Но потом, когда строк становится 100 тысяч, а потом и миллион и тут apply начинает сыпать пепел на твою клавиатуру.
Ты вызываешь профилировщик, ты перепроверяешь логику, но истина проста: ты просто пошёл по мягкой тропинке, когда рядом был каменный мост.

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

🔮 Заклинания ускорения обработки данных:

🟦 Если фильтруешь, то фильтруй по вектору:
df[df["status"] == "active"]

💡 Если нужно заменить по словарю зови .map():
df["city_code"] = df["city"].map(codebook).fillna(-1)

🖥 Если несколько условий используй np.select():
conditions = [
df["sales"] == 0,
df["sales"] < 100,
df["sales"] >= 100,
]
choices = ["none", "low", "high"]
df["sales_level"] = np.select(conditions, choices, default="unknown")

🖥 Если делишь на категории бери pd.cut() или pd.qcut():
df["bins"] = pd.cut(df["value"], bins=[0, 10, 20, 30], labels=["low", "mid", "high"])

🌜 Если фильтруешь по списку isin():
df[df["country"].isin(["DE", "FR", "IT"])]

Пусть это выглядит холодно, пусть это не так выразительно,
но когда ты гонишь миллионы значений сквозь цепочку NumPy,
ты уже не просто кодер, ты возница, несущийся по дороге векторного огня.

📝 Памятка себе, чтобы не тормозить:

apply это красиво, понятно, но медленно.

NumPy, Pandas и их встроенные методы твои ускоряющие заклинания.

Если пишешь lambda row: ... остановись. Возможно, ты пошёл не туда.
————————————————————-
📓 Дневник рутин
⚡️ Когда apply не тянет
🛤 Ищем кратчайший путь через данные

39 0 0 1
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot