Kodduu Python
1.07K subscribers
313 photos
28 videos
188 links
Научись программировать на Python на интересных примерах

Самый быстрый курс https://stepik.org/a/187914
Самый нескучный курс https://stepik.org/a/185238

Во вопросам сотрудничества: @AlexErf
Download Telegram
Для тех кому некогда, но очень нужно выучить Python запустили самый короткий курс (как раз можно пройти за январские праздники), скидка тоже прилагается https://stepik.org/a/187914
Давайте рассмотрим пример анализа данных с использованием методов машинного обучения. Мы будем использовать библиотеку pandas для обработки данных, scikit-learn для моделирования и matplotlib для визуализации.

Предположим, у нас есть набор данных, содержащий информацию о клиентах банка, и наша задача — предсказать, склонен ли клиент уйти (отток клиентов). Это типичная задача классификации в машинном обучении.

Предположим, у нас есть файл bank_customers.csv, который содержит колонки, такие как возраст клиента, баланс на счете, количество продуктов банка, используемых клиентом, и статус активности, а также целевая переменная Exited, указывающая, ушел клиент или нет.

Вот примерный код:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

# Загрузка данных
data = pd.read_csv('bank_customers.csv')

# Подготовка данных для модели
X = data.drop('Exited', axis=1) # Удаление целевой переменной
y = data['Exited']

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

# Создание и обучение модели
model = RandomForestClassifier()
model.fit(X_train, y_train)

# Оценка модели
predictions = model.predict(X_test)
print(classification_report(y_test, predictions))

# Визуализация матрицы ошибок
conf_matrix = confusion_matrix(y_test, predictions)
plt.figure(figsize=(10,6))
sns.heatmap(conf_matrix, annot=True, fmt='g')
plt.title('Матрица ошибок')
plt.xlabel('Предсказанное значение')
plt.ylabel('Истинное значение')
plt.show()


В этом коде мы сначала загружаем данные и подготавливаем их для моделирования, разделяя на обучающую и тестовую выборки. Затем мы используем алгоритм случайного леса (RandomForestClassifier) из scikit-learn для создания и обучения модели. После обучения модели мы оцениваем её производительность на тестовых данных, выводим отчёт о классификации и строим матрицу ошибок для визуализации результатов. Это позволяет нам понять, насколько хорошо модель способна предсказывать отток клиентов.

Подпишись 👉🏻 @KodduuPython 🤖
👍3
Для веб-разработки на Python часто используется фреймворк Flask, который позволяет легко создавать веб-приложения. Давайте создадим простое веб-приложение на Flask, которое будет отображать приветственное сообщение и предоставлять форму для ввода имени пользователя. После отправки формы пользователь увидит персонализированное приветствие.

Вот базовый код для такого приложения:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html')

@app.route('/greet', methods=['POST'])
def greet():
name = request.form['name']
return render_template('greet.html', name=name)

if __name__ == '__main__':
app.run(debug=True)


В этом коде есть два маршрута:
- Один для главной страницы (index), который отображает форму.
- Другой (greet) для обработки отправленных данных и отображения персонализированного приветствия.

Теперь вам понадобятся два HTML-шаблона: index.html и greet.html.

index.html:
html
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to our site!</h1>
<form action="/greet" method="post">
<input type="text" name="name" placeholder="Enter your name">
<input type="submit" value="Greet me!">
</form>
</body>
</html>


greet.html:
html
<!DOCTYPE html>
<html>
<head>
<title>Greeting</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
<a href="/">Go back</a>
</body>
</html>


Чтобы запустить это приложение, вам нужно установить Flask, создать эти файлы в соответствующей структуре директорий и запустить скрипт Python. После запуска вы сможете перейти по адресу http://localhost:5000 в вашем веб-браузере и увидеть приложение в действии.

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

Подпишись 👉🏻 @KodduuPython 🤖
Давайте создадим ещё один пример веб-приложения на Python, используя Flask. На этот раз создадим простой блог, где пользователи могут добавлять и просматривать посты. Будем использовать SQLite в качестве базы данных для хранения постов.

Вот базовый код для такого приложения:

from flask import Flask, request, render_template, redirect, url_for
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///posts.db'
db = SQLAlchemy(app)

class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text, nullable=False)

def __repr__(self):
return 'Post ' + str(self.id)

@app.route('/')
def index():
posts = Post.query.all()
return render_template('index.html', posts=posts)

@app.route('/add', methods=['GET', 'POST'])
def add_post():
if request.method == 'POST':
post_title = request.form['title']
post_content = request.form['content']
new_post = Post(title=post_title, content=post_content)
db.session.add(new_post)
db.session.commit()
return redirect(url_for('index'))
return render_template('add_post.html')

if __name__ == '__main__':
db.create_all()
app.run(debug=True)


В этом коде определена модель Post для хранения постов. Есть два маршрута:
- Один для главной страницы (index), который отображает все посты.
- Другой (add_post) для добавления новых постов.

Теперь создадим два HTML-шаблона: index.html и add_post.html.

index.html:
html
<!DOCTYPE html>
<html>
<head>
<title>Simple Blog</title>
</head>
<body>
<h1>Welcome to the Simple Blog</h1>
<a href="/add">Add new post</a>
<div>
{% for post in posts %}
<div>
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
</div>
{% endfor %}
</div>
</body>
</html>


add_post.html:
html
<!DOCTYPE html>
<html>
<head>
<title>Add Post</title>
</head>
<body>
<h1>Add Post</h1>
<form method="POST">
<input type="text" name="title" placeholder="Post title" required>
<textarea name="content" placeholder="Post content" required></textarea>
<input type="submit" value="Add Post">
</form>
<a href="/">Back to Home</a>
</body>
</html>


Этот пример демонстрирует, как можно создать простой блог с использованием Flask и SQLite. Пользователи могут добавлять новые посты, которые затем отображаются на главной странице.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте попробуем что-то из области анализа изображений с использованием Python. Мы создадим скрипт, который будет использовать библиотеку OpenCV для обнаружения и выделения лиц на фотографии. Это классическая задача в области компьютерного зрения.

Прежде всего, вам понадобится установить библиотеку OpenCV, если она ещё не установлена. Это можно сделать с помощью pip:

pip install opencv-python


Теперь давайте напишем код:

import cv2
import sys

def detect_faces(image_path):
# Загрузка изображения и каскада Хаара для обнаружения лиц
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
image = cv2.imread(image_path)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Обнаружение лиц
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30), flags=cv2.CASCADE_SCALE_IMAGE)

# Рисование прямоугольников вокруг лиц
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

# Вывод обработанного изображения
cv2.imshow("Faces found", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Пример использования функции
image_path = 'path_to_your_image.jpg' # Замените на путь к вашему изображению
detect_faces(image_path)


Этот код загружает изображение, преобразует его в серый цвет (что часто упрощает обработку изображений) и затем использует каскад Хаара для обнаружения лиц. После обнаружения лиц вокруг каждого из них рисуется прямоугольник.

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

Подпишись 👉🏻 @KodduuPython 🤖
Если у Вас есть знакомые и друзья кому тоже некогда, но надо с чего то начать в ИТ, то самый короткий курс по Python (как раз чтобы пройти на январских праздниках) будет лучшим подарком. Скидка прилагается 🎅
Как насчет создания небольшой программы на Python для генерации QR-кодов? Это полезно для различных задач, например, для быстрого создания ссылок, информации о контактах или Wi-Fi паролей в формате QR-кода. Мы воспользуемся библиотекой qrcode для генерации QR-кодов.

Для начала вам нужно установить библиотеку qrcode, если она ещё не установлена. Это можно сделать с помощью pip:

pip install qrcode[pil]


Теперь, когда у нас есть необходимая библиотека, давайте напишем код:

import qrcode
from PIL import Image

def generate_qr_code(data):
# Создание экземпляра QR-кода
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)

# Создание изображения QR-кода
img = qr.make_image(fill_color="black", back_color="white")

# Сохранение или отображение QR-кода
img.save("qr_code.png")
img.show()

# Пример использования функции
data = 'https://www.example.com' # Замените на данные, которые вы хотите закодировать
generate_qr_code(data)


В этом коде функция generate_qr_code принимает строку (например, URL-адрес) и генерирует соответствующий QR-код. Сгенерированный QR-код сохраняется в файле qr_code.png и отображается на экране.

Это простой и практичный пример, который можно использовать для быстрого создания QR-кодов для различных нужд.

Подпишись 👉🏻 @KodduuPython 🤖
🔥2