Pythoner
7.22K subscribers
859 photos
27 videos
4 files
653 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️Scikit-learn - это библиотека машинного обучения для Python, которая предоставляет инструменты и алгоритмы для построения моделей машинного обучения, обработки данных и оценки их качества.

➡️Основные преимущества Scikit-learn:
— Легкость использования.
— Широкий выбор алгоритмов.
— Хорошая документация и активное сообщество.

➡️Пример: Классификация с использованием метода k-ближайших соседей (k-NN):
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Загружаем набор данных Iris
data = load_iris()
X = data.data # Признаки
y = data.target # Целевые метки

# Разделяем данные на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Создаем модель k-NN
model = KNeighborsClassifier(n_neighbors=3)

# Обучаем модель
model.fit(X_train, y_train)

# Делаем предсказания
predictions = model.predict(X_test)

# Оцениваем точность модели
accuracy = accuracy_score(y_test, predictions)
print(f"Точность модели: {accuracy:.2f}")

⬆️Результат:
Точность модели: 1.00


⬆️Как это работает?
- Загрузка данных: Мы используем встроенный набор данных Iris из sklearn.datasets.

- Разделение данных: Метод train_test_split() разделяет данные на обучающую и тестовую выборки.

- Создание модели: Мы создаем экземпляр классификатора KNeighborsClassifier с параметром n_neighbors=3.

- Обучение модели: Метод .fit() обучает модель на обучающей выборке.

- Оценка точности: Мы сравниваем предсказания модели с реальными значениями и вычисляем точность.

💡Заключение
Scikit-learn — это отличный инструмент для начала работы с машинным обучением. Библиотека содержит множество классических алгоритмов, таких как SVM, случайные леса, наивный Байес и другие, а также инструменты для предобработки данных, выбора признаков, кросс-валидации и оценки моделей. Scikit-learn имеет простой и понятный API, что делает ее прекрасным выбором для начинающих в области машинного обучения.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥54
👴У владельца "Pythoner" появился блог!

Рассказываю про telegram без программирования: https://t.me/+tMKLZLAdrzcwZTVi
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2🥰2👍1
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤣7😁3
✈️DABL (Data Analytics in Business Language) — это библиотека Python, которая упрощает использование машинного обучения для анализа данных. Она предоставляет простой и понятный интерфейс для создания моделей машинного обучения, а также для их обучения и оценки.

🔎Основные возможности DABL:
- Автоматическая предобработка данных.
- Выбор оптимальной модели для задач классификации или регрессии.
- Генерация отчетов о данных и результатах модели.

➡️Пример использования DABL. Допустим, мы хотим решить задачу классификации на основе датасета Iris:
from sklearn.datasets import load_iris
from dabl import SimpleClassifier

# Загружаем набор данных Iris
data = load_iris()
X = data.data # Признаки
y = data.target # Целевые метки

# Создаем и обучаем простой классификатор
clf = SimpleClassifier(random_state=42)
clf.fit(X, y)

# Оцениваем точность модели
print(f"Точность модели: {clf.score(X, y):.2f}")

# Печатаем отчет о данных
clf.report()


⬆️Результат:
Точность модели: 1.00

В отчете clf.report() вы получите подробную информацию о данных, включая статистику признаков, распределение классов и характеристики выбранной модели.


💡Практическое применение:
- Быстрая оценка качества различных моделей на одном наборе данных.
- Автоматическая подготовка данных для машинного обучения.
- Генерация отчетов о данных для аналитических целей.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
✈️defaultdict — это подкласс словаря в модуле collections, который автоматически создает значения для несуществующих ключей. Это особенно полезно, когда вы работаете со словарями и хотите избежать ошибок, связанных с отсутствием ключей.

➡️Пример использования defaultdict:
from collections import defaultdict

# Создаем defaultdict с типом значения по умолчанию — список
my_dict = defaultdict(list)

# Добавляем элементы
my_dict['fruits'].append('apple')
my_dict['fruits'].append('banana')
my_dict['vegetables'].append('carrot')

print(my_dict)


⬆️Результат:
defaultdict(<class 'list'>, {
'fruits': ['apple', 'banana'],
'vegetables': ['carrot']
})


➡️Сравнение с обычным словарем:
# Без defaultdict
my_dict = {}
if 'fruits' not in my_dict:
my_dict['fruits'] = []
my_dict['fruits'].append('apple')

# С defaultdict
my_dict = defaultdict(list)
my_dict['fruits'].append('apple')


⬆️defaultdict делает код чище, удобнее и помогает избежать ошибок.

💡Заключение
defaultdict — это инструмент, который делает работу со словарями проще, чище и эффективнее. Он избавляет от необходимости проверять существование ключей, автоматически создавая значения по умолчанию, что упрощает код и делает его более читабельным. Благодаря своей гибкости, defaultdict позволяет использовать любые типы данных по умолчанию, будь то списки, числа или множества.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥4
✈️Сегодня решаем задачу, с которой часто сталкиваются аналитики данных: как объединить несколько CSV-файлов в один . Это полезно, если у вас есть данные, разбитые по дням, месяцам или категориям, и вы хотите собрать их в единый датасет для анализа.

➡️Задача: У нас есть несколько CSV-файлов (file1.csv, file2.csv, file3.csv), каждый из которых содержит данные с одинаковой структурой. Нужно объединить их в один файл.

➡️Решение:
import pandas as pd
import glob

# Шаг 1: Собираем все CSV-файлы из папки
files = glob.glob("data/*.csv") # Указываем путь к файлам
dfs = [pd.read_csv(file) for file in files] # Читаем каждый файл в DataFrame

# Шаг 2: Объединяем все DataFrame в один
combined_df = pd.concat(dfs, ignore_index=True)

# Шаг 3: Сохраняем результат в новый CSV-файл
combined_df.to_csv("combined_data.csv", index=False)

print("Все файлы успешно объединены!")


⬆️Как это работает:
- glob.glob("data/*.csv"): Находит все CSV-файлы в указанной папке.

- pd.read_csv(file): Читает каждый файл в DataFrame.

- pd.concat(dfs, ignore_index=True): Объединяет все DataFrame в один, игнорируя старые индексы.

- to_csv("combined_data.csv", index=False): Сохраняет объединённые данные в новый файл без дополнительного индекса.

💡Дополнительно:
Если файлы имеют разную структуру (например, разные столбцы), можно использовать параметр join="inner" или join="outer" в функции pd.concat().

join="inner": Оставит только общие столбцы.
join="outer": Включит все столбцы, заполняя пропуски значением NaN.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥2
✈️Bokeh — это библиотека визуализации данных для создания интерактивных и информативных графиков и диаграмм в веб-приложениях. С её помощью можно легко создавать красивые и наглядные визуализации данных, которые могут быть встроены в веб-страницы.

➡️Пример использования Bokeh:
from bokeh.plotting import figure, show, output_file

# Исходные данные
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# Создаем график
plot = figure(title="Простой график", x_axis_label='x', y_axis_label='y')
plot.line(x, y, legend_label="Тренд", line_width=2)

# Сохраняем результат в файл
output_file("line.html")

# Показываем график
show(plot)


⬆️Результат:
После выполнения кода откроется окно браузера с интерактивным графиком, где можно приближать, отдалять и перемещать данные.

➡️Пример добавления интерактивности:
from bokeh.models import HoverTool
from bokeh.plotting import figure, show

# Исходные данные
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# Создаем график
plot = figure(title="Интерактивный график", tools="pan,wheel_zoom,box_zoom,reset")
plot.circle(x, y, size=10, color="navy", alpha=0.5)

# Добавляем инструмент HoverTool для подсказок
hover = HoverTool(tooltips=[("x", "@x"), ("y", "@y")])
plot.add_tools(hover)

# Показываем график
show(plot)


💡Заключение:
Bokeh — это мощный инструмент для создания интерактивных визуализаций данных в Python. Он идеально подходит для аналитиков, учетных данных и разработчиков, которым нужна возможность создавать сложные графики с минимальными усилиями.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16🤣9👍2
✈️Что такое itertools.chain?
itertools.chain — это полезная функция из стандартной библиотеки Python для объединения нескольких итерируемых объектов (списки, кортежи и т.д.) в один. Она помогает обходить несколько коллекций последовательно, как будто они являются одной.

➡️Пример объединение списков:
from itertools import chain

# Исходные данные
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]

# Объединяем списки с помощью chain
combined = chain(list1, list2, list3)

print("Объединенный результат:")
for item in combined:
print(item, end=" ") # Вывод: 1 2 3 4 5 6 7 8 9


➡️Пример использования itertools.chain с разными типами данных:
from itertools import chain

# Разные типы данных
data1 = [10, 20, 30]
data2 = ('a', 'b', 'c')
data3 = range(3)

# Объединяем все вместе
result = list(chain(data1, data2, data3))

print("Результат после объединения:")
print(result) # Вывод: [10, 20, 30, 'a', 'b', 'c', 0, 1, 2]


💡itertools.chain позволяет эффективно работать с несколькими последовательностями как с одной, не создавая дополнительных списков и не тратя лишние ресурсы на их хранение в памяти.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🤔4🗿1
👍8
Что выдаст код выше
Anonymous Quiz
1%
3
3%
10
4%
13
79%
7.33333
13%
13.33333
👍13👌4🔥3
🤔Разбор

Это задача для новичков проверяет понимание различных видов деления в Python и особенностей работы с числами с плавающей точкой. А поскольку в выражении присутствует операция /, которая всегда возвращает число с плавающей точкой, итоговый результат также будет числом с плавающей точкой.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183🔥3
✈️Requests — это популярная библиотека Python для работы с HTTP-запросами. Она позволяет легко отправлять GET, POST, PUT, DELETE и другие типы запросов к веб-серверам, а также обрабатывать ответы в виде текста, JSON или байтов.

➡️Пример использования requests, отправка GET-запроса:
import requests

# Отправляем GET-запрос
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")

# Проверяем статус код
if response.status_code == 200:
print("Успешный запрос!")
data = response.json() # Преобразуем ответ в JSON
print(data)
else:
print(f"Ошибка: {response.status_code}")


➡️Пример POST-запроса:
import requests

# Данные для отправки
payload = {
"title": "foo",
"body": "bar",
"userId": 1
}

# Отправляем POST-запрос
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=payload)

# Обработка ответа
if response.status_code == 201:
print("Данные успешно созданы!")
print(response.json())
else:
print(f"Ошибка: {response.status_code}")


💡Requests — это незаменимый инструмент для работы с веб-сервисами и API в Python. Он делает взаимодействие с интернетом простым и эффективным.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
✈️PyInquirer — это библиотека Python для создания интерактивных командных строковых интерфейсов (CLI) с использованием красивых и удобных вопросов. Она позволяет добавлять выбор из списка, ввод данных, подтверждения и многое другое, делая ваши CLI-приложения более дружелюбными для пользователей.

➡️Пример использования PyInquirer. Создание простого интерактивного меню:
from PyInquirer import prompt

# Определение списка вопросов
questions = [
{
'type': 'list',
'name': 'action',
'message': 'Что вы хотите сделать?',
'choices': ['Добавить задачу', 'Удалить задачу', 'Выход']
},
{
'type': 'input',
'name': 'task',
'message': 'Введите название задачи:',
'when': lambda answers: answers['action'] == 'Добавить задачу'
}
]

# Отображение вопросов
answers = prompt(questions)

# Обработка ответов
if answers['action'] == 'Добавить задачу':
print(f"Задача '{answers['task']}' успешно добавлена!")
elif answers['action'] == 'Выход':
print("До свидания!")


⬆️Как работает этот код:
— Пользователь выбирает действие из списка (Добавить задачу, Удалить задачу или Выход).
— Если выбрано "Добавить задачу", пользователю предлагается ввести название задачи.
— В зависимости от выбора выводится соответствующее сообщение.

🔎Плюсы PyInquirer:
- Интерактивность: Легко создавать сложные диалоги с различными типами вопросов (выбор из списка, ввод текста, подтверждение и т.д.).

- Красивый вывод: Библиотека обеспечивает эстетичный и удобный интерфейс для пользователей.

- Гибкость: Возможность настраивать поведение вопросов через параметры, такие как when и filter.

- Простота интеграции: Легко добавлять в существующие CLI-приложения без сложных изменений.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43
✈️Faker — это библиотека Python для генерации фиктивных данных, таких как имена, адреса, email-адреса, телефоны, тексты и многое другое. Она идеально подходит для заполнения баз данных тестовыми данными, создания демонстрационных приложений или защиты конфиденциальной информации.

➡️Пример использования Faker:
from faker import Faker

# Создаем объект Faker (с русским языком)
fake = Faker('ru_RU')

# Генерируем фейковые данные
name = fake.name() # Фейковое имя
address = fake.address() # Фейковый адрес
email = fake.email() # Фейковый email
text = fake.text() # Фейковый текст

# Выводим результаты
print(f"Имя: {name}")
print(f"Адрес: {address}")
print(f"Email: {email}")
print(f"Текст: {text}")


⬆️Результат:
Имя: Мария Иванова
Адрес: 123456, Москва, улица Ленина, дом 10, квартира 45
Email: maria.ivanova@example.com
Текст: Lorem ipsum dolor sit amet, consectetur adipiscing elit...


🔎Почему библиотека Faker полезна?

- Разнообразие данных: Поддерживает множество типов данных, включая имена, адреса, номера телефонов, даты, тексты и даже банковские счета.
- Локализация: Может генерировать данные на разных языках (включая русский).
- Простота использования: Легко интегрируется в проекты для быстрой генерации тестовых данных.
- Защита данных: Используйте Faker для замены реальных данных в тестовых средах, чтобы защитить конфиденциальную информацию.

➡️Синтетические данные для машинного обучения

Faker может быть использован для создания синтетических наборов данных, которые помогают обучать модели машинного обучения без необходимости использовать реальные данные. Это особенно полезно, когда доступ к реальным данным ограничен или они содержат чувствительную информацию.

💡Заключение
Faker — это отличный инструмент для разработчиков, которым нужно быстро создавать реалистичные тестовые данные. Он делает процесс разработки и тестирования более эффективным и удобным.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86🔥4
➡️Пример использования Blessings. Создание цветного вывода:
from blessings import Terminal

# Создаем объект терминала
term = Terminal()

# Используем цвета и стили
print(term.bold('Это жирный текст!'))
print(term.red_on_yellow('Красный текст на желтом фоне!'))
print(term.move_down + term.green('Текст ниже предыдущего!'))


➡️Пример позиционирование курсора:
from blessings import Terminal

term = Terminal()

# Перемещаем курсор в конкретную позицию
with term.location(10, 5): # (x=10, y=5)
print("Текст в определенной позиции!")

# Возвращаемся в конец вывода
print(term.move_down + "Конец программы.")


🔎Почему библиотека Blessings полезна?

- Простота: Легко добавлять цвета, стили и управление курсором без сложных escape-последовательностей.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows (с использованием colorama).
- Читаемость кода: Аннотации, такие как term.bold или term.red, делают код более понятным и поддерживаемым.
- Минимальные зависимости: Библиотека легкая и не требует установки множества зависимостей.

💡Blessings — это отличный инструмент для разработчиков, которым нужно создавать красивые и интерактивные CLI-приложения. Она делает работу с терминалом приятной и удобной.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥2
✈️Click — это простая и мощная библиотека Python для создания командных строковых интерфейсов (CLI). Она позволяет легко создавать сложные программы с поддержкой параметров, аргументов и вложенных команд. Благодаря своей гибкости и удобству использования, Click стал одним из самых популярных инструментов для разработки CLI-приложений.

➡️Пример создания простой CLI-программы:
import click

# Основная команда
@click.command()
@click.option('--count', default=1, help='Количество приветствий.')
@click.option('--name', prompt='Введите ваше имя', help='Имя пользователя.')
def hello(count, name):
"""Простая программа для вывода приветствия若干 раз."""
for _ in range(count):
click.echo(f"Привет, {name}!")

if __name__ == '__main__':
hello()


⬆️Как работает этот код:
1. Пользователь запускает программу через терминал.
2. Программа предлагает ввести имя пользователя.
3. Выводит приветствие столько раз, сколько указано в параметре --count.

🔎Почему библиотека Click полезна?
- Простота: Легко создавать CLI-приложения с минимальными усилиями.
- Гибкость: Поддерживает параметры, аргументы, флаги и вложенные команды.
- Автоматическая справка: Автоматически генерирует справку для ваших команд.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows.

💡Заключение
Click — это отличный выбор для разработчиков, которым нужно быстро создавать надежные и удобные CLI-интерфейсы. Он делает работу с терминалом приятной и эффективной.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
👍62🔥2
Что выдаст код выше
Anonymous Quiz
66%
2 3
3%
3 2
2%
1 2
3%
2 1
17%
2 4
9%
1 3
🤔9🤓5🤨43👍3👌1
🤔Разбор

В тексте переменной txt есть 4 буквы —> индекс последней —> [3]
Заходим в первый try, сразу же запрыгиваем во второй. Пробуем получить txt[5] —> не можем—> ошибку ловит except.
В except'e выводим число 2.

Далее выходим из внутреннего try-except'a и пытаемся получить txt[3] —> удачно —> на следующей строке выводим 3.

В except не заходим, так как все прошло успешно.
Ответ: 2 3


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥4