Очистка последовательности — это процесс удаления нежелательных элементов из коллекции данных (например, списка, строки или множества). Это может включать удаление дубликатов, пустых значений, специальных символов или любых других ненужных элементов. Это особенно важно при работе с реальными данными, которые часто содержат шум или ошибки.
# Исходный список
data = [1, 2, 2, 3, 4, 4, 5]
# Удаляем дубликаты с помощью множества
cleaned_data = list(set(data))
print("Исходный список:", data)
print("Очищенный список:", cleaned_data)
Результат:
Исходный список: [1, 2, 2, 3, 4, 4, 5]
Очищенный список: [1, 2, 3, 4, 5]
# Исходная строка
text = " Hello, World! This is a test. "
# Удаляем лишние пробелы
cleaned_text = ' '.join(text.split())
print("Исходная строка:", repr(text))
print("Очищенная строка:", repr(cleaned_text))
Результат:
Исходная строка: ' Hello, World! This is a test. '
Очищенная строка: 'Hello, World! This is a test.'
# Исходный список
numbers = [3, -1, 0, 7, -5, 2]
# Фильтрация с помощью list comprehension
positive_numbers = [num for num in numbers if num > 0]
print("Исходный список:", numbers)
print("Очищенный список:", positive_numbers)
Результат:
Исходный список: [3, -1, 0, 7, -5, 2]
Очищенный список: [3, 7, 2]
Очистка последовательностей — это важный шаг в подготовке данных для анализа или обработки. который даёт чистоту данных, улучшение производительности и правильность результатов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4❤3
PyAutoGUI позволяет эмулировать ввод с клавиатуры, например, ввод текста и нажатие клавиш.PyAutoGUI предоставляет функционал для работы с окнами программ, такой как перемещение и изменение размеров окон.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥3
— Легкость использования.
— Широкий выбор алгоритмов.
— Хорошая документация и активное сообщество.
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, что делает ее прекрасным выбором для начинающих в области машинного обучения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤4
Рассказываю про telegram без программирования: https://t.me/+tMKLZLAdrzcwZTVi
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2🥰2👍1
- Автоматическая предобработка данных.
- Выбор оптимальной модели для задач классификации или регрессии.
- Генерация отчетов о данных и результатах модели.
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() вы получите подробную информацию о данных, включая статистику признаков, распределение классов и характеристики выбранной модели.
- Быстрая оценка качества различных моделей на одном наборе данных.
- Автоматическая подготовка данных для машинного обучения.
- Генерация отчетов о данных для аналитических целей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2
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 позволяет использовать любые типы данных по умолчанию, будь то списки, числа или множества.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥4
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.Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3🔥2
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. Он идеально подходит для аналитиков, учетных данных и разработчиков, которым нужна возможность создавать сложные графики с минимальными усилиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
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
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 позволяет эффективно работать с несколькими последовательностями как с одной, не создавая дополнительных списков и не тратя лишние ресурсы на их хранение в памяти.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🤔4🗿1
👍13👌4🔥3
/Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤3🔥3
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}")
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}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥2
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("До свидания!")
— Пользователь выбирает действие из списка (Добавить задачу, Удалить задачу или Выход).
— Если выбрано "Добавить задачу", пользователю предлагается ввести название задачи.
— В зависимости от выбора выводится соответствующее сообщение.
- Интерактивность: Легко создавать сложные диалоги с различными типами вопросов (выбор из списка, ввод текста, подтверждение и т.д.).
- Красивый вывод: Библиотека обеспечивает эстетичный и удобный интерфейс для пользователей.
- Гибкость: Возможность настраивать поведение вопросов через параметры, такие как when и filter.
- Простота интеграции: Легко добавлять в существующие CLI-приложения без сложных изменений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3
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 — это отличный инструмент для разработчиков, которым нужно быстро создавать реалистичные тестовые данные. Он делает процесс разработки и тестирования более эффективным и удобным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6🔥4
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 + "Конец программы.")
- Простота: Легко добавлять цвета, стили и управление курсором без сложных escape-последовательностей.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows (с использованием colorama).
- Читаемость кода: Аннотации, такие как term.bold или term.red, делают код более понятным и поддерживаемым.
- Минимальные зависимости: Библиотека легкая и не требует установки множества зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥2
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.
- Простота: Легко создавать CLI-приложения с минимальными усилиями.
- Гибкость: Поддерживает параметры, аргументы, флаги и вложенные команды.
- Автоматическая справка: Автоматически генерирует справку для ваших команд.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows.
Click — это отличный выбор для разработчиков, которым нужно быстро создавать надежные и удобные CLI-интерфейсы. Он делает работу с терминалом приятной и эффективной.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2