Модуль 0.2 Вступ

ЧОМУ PYTHON ДЛЯ АНАЛІТИКИ/OSINT

Курс: Python для аналітиків з нуля

1. ЩО НАВЧИМОСЯ РОБИТИ

Зрозуміємо, чому саме Python став стандартом для аналітики та OSINT. Порівняємо Python з Excel, спеціалізованим ПЗ (Maltego, Palantir) та іншими мовами програмування. Після модуля ви зможете обґрунтувати вибір Python для конкретної задачі або аргументовано відмовитись на користь іншого інструменту.

2. ТЕРМІНОЛОГІЯ

3. ТЕОРІЯ

3.1 Python у світі аналітики

Python — одна з найпопулярніших мов програмування у світі. За даними Stack Overflow та GitHub, Python стабільно входить у топ-3 найбільш використовуваних мов. У сфері аналітики даних, машинного навчання та OSINT Python де-факто став стандартом.

Чому саме Python?

  • Читабельність. Код на Python виглядає майже як англійська мова. Навіть без досвіду можна зрозуміти, що робить програма.
  • Екосистема бібліотек. Тисячі готових бібліотек для будь-якої задачі: аналіз даних (pandas), візуалізація (matplotlib), веб-скрапінг (beautifulsoup).
  • Спільнота. Мільйони розробників. Будь-яка проблема вже вирішена кимось.
  • Безкоштовність. Python та всі основні бібліотеки — open source.
  • Кросплатформність. Працює на Windows, Linux, macOS.

3.2 Python vs Excel

Excel — чудовий інструмент для роботи з таблицями. Але у Excel є межі.

Практичний приклад:

Задача: щодня завантажити дані з 5 джерел, об'єднати, відфільтрувати, побудувати графік.

  • Excel: 30-40 хвилин ручної роботи щодня.
  • Python: 2-3 години один раз, далі — 1 секунда на автозапуск.

3.3 Python vs спеціалізоване ПЗ

Maltego, Palantir, i2 Analyst's Notebook — потужні інструменти. Чому тоді Python?

Коли спеціалізоване ПЗ краще: є бюджет, стандартні задачі, немає часу вчитись, потрібна офіційна підтримка.

Коли Python краще: бюджет обмежений, нестандартні задачі, потрібна інтеграція джерел, готові інвестувати час.

3.4 Переваги Python для військової аналітики

Автоматизація рутини: парсинг логів, аналіз геолокацій, моніторинг Telegram, побудова графів, генерація звітів.

Бібліотеки для всього:

Безкоштовність та незалежність: працює без ліцензій, не залежите від вендора.

3.5 Недоліки Python (чесно)

  • Треба навчитись. Кілька тижнів на базовий рівень.
  • Немає кнопок. Все треба писати кодом.
  • Помилки неминучі. Код буде падати, особливо спочатку.
  • Версії бібліотек. Іноді конфліктують між собою.

Важливо: ці недоліки зменшуються при використанні AI для генерації коду.

4. КОД З КОМЕНТАРЯМИ

Задача: є CSV з 500 записами перехоплень. Знайти топ-10 частот за кількістю і середню силу сигналу.

import pandas as pd
# Завантажити дані
df = pd.read_csv('перехоплення.csv')
# Згрупувати за частотою
аналіз = df.groupby('frequency').agg({
'signal_strength': ['count', 'mean']
}).round(2)
# Перейменувати колонки
аналіз.columns = ['кількість', 'середня_сила']
# Топ-10
топ10 = аналіз.sort_values('кількість', ascending=False).head(10)
print(топ10)
топ10.to_csv('топ10_частот.csv')

Час написання: 10-15 хвилин (перший раз). Час виконання: 1 секунда.

5. РОЗБІР ПО РЯДКАХ

import pandas as pd

Підключення бібліотеки pandas (скорочено pd) для роботи з таблицями.

df = pd.read_csv('файл.csv')
Завантаження CSV у змінну df (DataFrame = таблиця).
df.groupby('frequency')

Групування рядків за значенням колонки frequency.

.agg({'signal_strength': ['count', 'mean']})

Агрегація: count = кількість, mean = середнє значення.

.sort_values('кількість', ascending=False)

Сортування за спаданням (найбільші зверху).

6. ЗАВДАННЯ 1: ЗНАЙТИ ПОМИЛКУ

import pandas as pd
df = pd.read_csv('перехоплення.csv')
топ10 = df.sort_values('signal_strength').head(10)
print(топ10)

Що не так?

Проблема 1: сортування за зростанням (за замовчуванням). Виведе найслабші сигнали, не найсильніші.

Проблема 2: виводяться окремі записи, а не частоти. Треба групувати.

Виправлення: ascending=False та groupby для частот.

7. ЗАВДАННЯ 2: ПРОМПТ ДЛЯ AI

Задача: CSV з моніторингу Telegram (channel_name, post_date, text, views, forwards). Знайти 5 каналів з найбільшою сумарною кількістю переглядів за тиждень.

Напиши код на Python для аналізу CSV telegram_monitoring.csv.

8. ЗАВДАННЯ 3 (ОПЦІОНАЛЬНО)

Модифікувати код з розділу 4: додати min та max сили сигналу для кожної частоти.

Підказка: {'signal_strength': ['count', 'mean', 'min', 'max']}

9. РЕФЛЕКСІЯ

10. ЩО ДАЛІ

  • Модуль 0.3: Як правильно ставити задачі AI для генерації коду.
  • Модуль 0.4: Межа між "писати самому" та "делегувати AI".
  • Модуль 1.1: Починаємо Python: змінні, числа, текст.

Головна думка: Python оптимальний для аналітики за співвідношенням можливостей, вартості та порогу входу. Особливо з AI.

Рефлексія

Прогрес модуля 0%