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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
➡️Иногда элементы массива изначально неизвестны, но массив для их хранения необходим сейчас. Поэтому в NumPy есть функции для создания массива с исходным содержимым (по умолчанию тип массива — float64)

➡️ zeros((n, m)) - создает массив нулей с размером n x m.
>>> np.zeros((3, 2))
array([[0., 0.],
[0., 0.],
[0., 0.]])


➡️ ones((n, m)) - создает массив единиц с размером n x m.
>>> np.ones((2, 3))
array([[1., 1., 1.],
[1., 1., 1.]])

>>> np.ones((2, 2), dtype=np.int16)
array([[1, 1],
[1, 1]], dtype=int16)


➡️empty() - создает массив без заполнения. Исходное содержимое случайно и зависит от состояния памяти на момент создания массива (мусор, что в ней хранится).
>>> np.empty((2,2))
array([[5.e-324, 0.e+000],
[0.e+000, 5.e-324]])


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥21🤔1
✈️Когда работаешь с Git, важно не засорять репозиторий временными и локальными файлами. Для Python это особенно актуально.

➡️Вот минимальный набор, который должен быть в .gitignore:
# Кэш компиляции Python
__pycache__/
*.py[cod]

# Виртуальное окружение
venv/
env/

# Файлы зависимостей и IDE
*.log
*.sqlite3
*.env
*.DS_Store

# VS Code / PyCharm и прочее
.vscode/
.idea/

# Файлы зависимостей
pip-wheel-metadata/
*.egg-info/
dist/
build/


💡Зачем это всё?
— Не лить в гит лишнее
— Исключить локальные настройки и окружение
— Сохранить проект чистым и переносимым

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥3
👍3🔥1
Что выдаст код выше
Anonymous Quiz
17%
True True
11%
False False
30%
True False
11%
False True
31%
Error
🤔6🤨2🔥1🤓1
🤔Разбор

В Python при приведении к bool любая непустая строка(даже если это пробелы) оценивается как True, а комплексный ноль - False


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2👾2
✈️Вместо copy.deepcopy() можно эффективно копировать dataclass с изменением полей.

➡️Пример:
from dataclasses import dataclass, replace

@dataclass
class User:
name: str
age: int

user1 = User("Alice", 30)
user2 = replace(user1, age=35)

print(user2) # User(name='Alice', age=35)


💡Зачем это нужно?
- Можно изменять объект, не модифицируя оригинал.
- Работает быстрее, чем deepcopy().
- Удобно для immutable объектов.

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

➡️Создание простого графика-
Для начала давайте создадим простой график. Для этого нам понадобятся данные, которые мы будем отображать на графике. В примере ниже мы создадим массив данных для точек x и y:
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)
plt.show()


⬆️В этом примере мы импортируем библиотеку Matplotlib и создаем два массива данных для значений x и y. Затем мы используем функцию plot() для построения графика, передавая ей значения x и y. Наконец, мы используем функцию show() для отображения графика.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥3
➡️set.isdisjoint() в Python - это метод, который используется для проверки, не имеют ли два множества общих элементов. Если два множества не имеют общих элементов, то метод isdisjoint() возвращает True, в противном случае он возвращает False.

➡️Пример использования метода set.isdisjoint():
set1 = {1, 2, 3}
set2 = {4, 5, 6}

# Проверяем, не имеют ли два множества общих элементов
result = set1.isdisjoint(set2)

print(result) # Выводит True, поскольку множества не имеют общих элементов


Если бы у нас было два множества с общими элементами, метод isdisjoint() вернул бы False:
set3 = {1, 2, 3}
set4 = {3, 4, 5}

result = set3.isdisjoint(set4)

print(result) # Выводит False, так как множества имеют общий элемент (число 3)

➡️Преимущества использования метода set.isdisjoint():

-Простота и удобство проверки наличия общих элементов: Метод isdisjoint() предоставляет простой способ быстрой проверки наличия общих элементов между двумя множествами.

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

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍32
✈️Surprise (Simple Python Recommendation System Engine) предоставляет готовые инструменты для быстрого обучения и оценки алгоритмов рекомендаций на основе пользовательских предпочтений.

➡️Ключевая функция:
Простое тестирование и сравнение классических алгоритмов (KNN, SVD, SlopeOne) на ваших данных с акцентом на точность предсказаний.

➡️Пример:
from surprise import Dataset, KNNBasic
from surprise.model_selection import cross_validate

# Загрузка встроенного датасета MovieLens
data = Dataset.load_builtin('ml-100k')

# Обучение KNN-модели
algo = KNNBasic()
cross_validate(algo, data, measures=['RMSE'], cv=5, verbose=True)


💡Главный плюс:
Чистый API для экспериментов с рекомендательными алгоритмами без сложной инфраструктуры — идеально для исследований и прототипирования.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
✈️Конструкция try-except - это база, которая позволяет перехватывать ошибки во время выполнения и избегать падения программы.

➡️Пример:
user_input = "42a"

try:
number = int(user_input)
print("Число:", number)
except ValueError:
print("Ошибка: это не целое число")

Ошибка: это не целое число


💡Полезно при работе с вводом, файлами, сетью и любыми нестабильными операциями. Можно добавить else и finally для дополнительной логики.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👌1
✈️Fugue — это мощный инструмент для обработки данных, который объединяет возможности Python и SQL. Она разработана для упрощения обработки данных в распределенных системах, таких как Apache Spark и Dask, и позволяет писать код, который будет работать как в локальном режиме, так и в распределенном.

➡️Основные возможности:
💬Упрощение кода для обработки данных
💬Поддержка различных движков выполнения (Spark, Dask)
💬Поддержка SQL, что позволяет использованию знакомого синтаксиса для работы с данными

➡️Пример использования:
# Установка библиотеки
!pip install fugue

# Импорт необходимых модулей
from fugue import FugueEngine
from fugue.spark import SparkExecutionEngine

# Пример обработки данных
def process_data(df):
return df.groupby("category").agg({"value": "sum"})

# Инициализация движка
engine = SparkExecutionEngine()

# Чтение данных
data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
]

# Обработка данных
result = engine.run(data, process_data)

# Вывод результата
print(result)

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1