Программистика
قناة بسيطة
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
إظهار المزيد5 596
المشتركون
-224 ساعات
+87 أيام
-8530 أيام
أرشيف المشاركات
5 596
🖼️ Библиотека Python: Boltons
Boltons — это мощный набор инструментов и утилит для Python, предназначенный для дополнения стандартной библиотеки без внешних зависимостей. Он предлагает широкий спектр готовых к использованию решений, включая усовершенствованные структуры данных, утилиты для работы со строками, числами, датами и файлами, улучшая тем самым производительность и эффективность разработки.
⚙️ Пример использования
from boltons.cacheutils import cachedproperty
class Circle:
def __init__(self, radius):
self.radius = radius
@cachedproperty
def area(self):
print("Вычисление площади круга")
return 3.141592653589793 * self.radius * self.radius
# Создаем экземпляр круга с радиусом 5
circle = Circle(5)
# При первом обращении к свойству area, будет выполнено его вычисление
print(circle.area) # Вычисление площади круга и вывод результата
# При последующих обращениях к свойству area, вычисление выполняться не будет, значение будет взято из кэша
print(circle.area) # Вывод результата без повторного вычисления
В этом примере, когда мы в первый раз обращаемся к свойству area объекта circle, выполняется вычисление площади круга, и результат кэшируется. При последующих обращениях к этому свойству, вычисление повторно не производится, а используется ранее кэшированное значение, что демонстрирует эффективность использования CachedProperty для оптимизации производительности ваших Python приложений.
✔️ Установка
pip install boltons
⛓ Ссылка на документацию
@programistica // #Library5 596
👀 Книга: Базовые алгоритмы машинного обучения на языке Python
⏺Машинное обучение: общие сведения и понятия
⏺Исследовательский анализ данных
⏺Линейная регрессия
⏺Логистическая регрессия
⏺Уменьшение размерности
⏺Кластеризация
@programistica // #doc
5 596
У топовых айтишников есть секрет, они работают не 8 часов, а головой!
Понимают, что без английского в айти делать нечего. Поэтому в начале карьеры изучают технический английский, а потом смело прибавляют +40% к рыночной зарплате.
Знают где в телеграме брать современные идеи и материалы для работы. Например, для web-разработчиков – это Сайтодел.
Становись Senior-разработчиком. Всё просто, два клика:
→ Английский для программистов
→ Сайтодел
🎁 Бесплатно: Поиск разработчика для сайта и первый созвон по обучению английскому. Не упускай такую возможность!
5 596
💻 Вопрос из собеседования: Что такое оператор членства?
Операторы членства в Python проверяют принадлежность объекта к последовательности, такой как строки, списки или кортежи. Python предлагает два оператора членства для проверки принадлежности значения. Они следующие:
“in” и “not in”.
Пример 1: В этом коде мы инициализировали список, строку, набор, словарь и кортеж. Затем мы используем оператор членства in, чтобы проверить, встречается ли элемент в соответствующих последовательностях или нет.
list1 = [1, 2, 3, 4, 5]
str1 = "Hello World"
set1 = {1, 2, 3, 4, 5}
dict1 = {1: "Geeks", 2:"for", 3:"geeks"}
tup1 = (1, 2, 3, 4, 5)
print(2 in list1)
print('O' in str1)
print(6 in set1)
print(3 in dict1)
print(9 in tup1)
#Вывод:
#True
#False
#False
#True
#False
Пример 2: Давайте посмотрим другой пример, но на этот раз без использования оператора ‘in’:
def overlapping(list1, list2):
c = 0
d = 0
for i in list1:
c += 1
for i in list2:
d += 1
for i in range(0, c):
for j in range(0, d):
if(list1[i] == list2[j]):
return 1
return 0
list1 = [1, 2, 3, 4, 5]
list2 = [6, 2, 8, 9]
if(overlapping(list1, list2)):
print("overlapping")
else:
print("not overlapping")
#Вывод:
#overlapping
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
⚙️ Модель ARIMA в программировании
Модель ARIMA (Autoregressive Integrated Moving Average) является одним из наиболее широко используемых подходов для прогнозирования временных рядов в статистике и машинном обучении. Эта модель объединяет три основных компонента: авторегрессионный (AR), интегрированный (I) и скользящего среднего (MA), что делает ее мощным инструментом для анализа временных рядов, особенно когда данные имеют тренды или сезонность.
Основные компоненты модели ARIMA
⏺Авторегрессионный (AR) компонент описывает взаимосвязь между текущим значением временного ряда и его предыдущими значениями.
⏺Интегрированный (I) компонент относится к разностям временного ряда, необходимым для достижения стационарности данных.
⏺Компонент скользящего среднего (MA) моделирует взаимосвязь между текущим значением временного ряда и прошлыми ошибками прогноза.
Пример использования модели ARIMA в Python
Для работы с ARIMA в Python часто используется библиотека statsmodels. Ниже приведен пример анализа и прогнозирования временного ряда с использованием ARIMA.
✔️Установка библиотеки statsmodels
pip install statsmodels
✔️Подготовка данных
Для примера возьмем искусственно сгенерированный временной ряд:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
# Генерация искусственного временного ряда
np.random.seed(42)
data = np.random.normal(0, 1, 100).cumsum()
# Преобразование в pandas Series для удобства
time_series = pd.Series(data)
✔️Построение модели ARIMA
Выбор параметров модели ARIMA (p, d, q) может быть основан на анализе автокорреляции и частичной автокорреляции временного ряда. Для простоты примера возьмем произвольные параметры:
# Создание и обучение модели ARIMA
model = ARIMA(time_series, order=(2, 1, 2))
model_fit = model.fit()
# Вывод сводки модели
print(model_fit.summary())
✔️Прогнозирование с помощью модели ARIMA
После обучения модели можно сделать прогноз на будущее:
# Прогнозирование
forecast = model_fit.forecast(steps=10)
print(forecast)
# Визуализация исходных данных и прогноза
plt.figure(figsize=(10, 6))
plt.plot(time_series, label='Исходные данные')
plt.plot(pd.Series(forecast, index=np.arange(len(time_series), len(time_series) + 10)), label='Прогноз', color='red')
plt.legend()
plt.show()
Заключение
Модель ARIMA представляет собой мощный инструмент для анализа и прогнозирования временных рядов. Она позволяет учитывать различные статистические свойства данных, включая тренды и сезонность. Благодаря библиотеке statsmodels, работа с ARIMA в Python становится относительно простой и доступной задачей для аналитиков и разработчиков.
@programistica // #article5 596
❤️ Все платные курсы и книги выложили в Telegram
Найденные материалы по всем языкам программирования теперь доступны бесплатно:
— Видео-курсы 2872 шт.
— Обучающие книги 1913 шт.
🔒 Ежедневно куча материалов сливается в канал Easy Dev
5 596
🖼️ Библиотека Python: Pydantic
Pydantic — это современная библиотека для валидации данных и управления настройками в Python, использующая Python type hints для проверки типов данных. Она позволяет легко создавать сложные модели данных с автоматической валидацией и конвертацией типов, обеспечивая быструю и эффективную разработку приложений с чётко определёнными структурами данных.
⚙️ Пример использования
from pydantic import BaseModel, ValidationError, constr, conint
# Определяем модель данных с Pydantic
class User(BaseModel):
id: int
name: constr(min_length=2, max_length=50)
age: conint(ge=18, le=100)
email: str
# Пример корректных данных
valid_user_data = {
"id": 1,
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
}
# Пример некорректных данных
invalid_user_data = {
"id": "abc", # Некорректный тип
"name": "J", # Слишком короткое имя
"age": 150, # Возраст вне допустимого диапазона
"email": "not-an-email" # Некорректный формат email
}
# Проверка корректных данных
try:
user = User(**valid_user_data)
print("Корректные данные:", user)
except ValidationError as e:
print("Ошибки валидации (корректные данные):", e.json())
# Проверка некорректных данных
try:
user = User(**invalid_user_data)
print("Некорректные данные:", user)
except ValidationError as e:
print("Ошибки валидации (некорректные данные):", e.json())
В этом примере мы определили модель данных User, которая включает в себя поля id, name, age и email. Мы использовали ограничения типов, такие как минимальная и максимальная длина строки для имени, и диапазон допустимых значений для возраста.
Затем мы создали два набора данных: один корректный (valid_user_data) и один некорректный (invalid_user_data). Мы проверили оба набора данных, создавая экземпляры модели User. В случае корректных данных объект модели будет создан успешно, а в случае некорректных данных будет выброшено исключение ValidationError, которое мы обрабатываем и выводим.
✔️ Установка
pip install pydantic
⛓ Ссылка на документацию
@programistica // #Library5 596
💻 Вопрос из собеседования: Что такое поверхностная копия?
Поверхностная копия используется при создании нового типа экземпляра и сохраняет значения, скопированные в новом. Также она используется для копирования ссылочных указателей. Это означает, что когда мы копируем объект в другую переменную, он будет привязан.
list_example = [1,2,3,4,5]
another_list = list_example
another_list[0] = 100
print(list_example)
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
👀 Книга: Программирование на языке высокого уровня Python
⏺ЗНАКОМСТВО С ЯЗЫКОМ ПРОГРАММИРОВАНИЯ PYTHON
⏺ИНТЕЛЛЕКТУАЛЬНЫЙ КАЛЬКУЛЯТОР
⏺ПЕРЕМЕННЫЕ
⏺ФУНКЦИИ
⏺ПРОГРАММЫ В ОТДЕЛЬНОМ ФАЙЛЕ
⏺ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
И многое другое
@programistica // #doc
5 596
SQL теперь в телеграм!
SQL — главный язык программирования баз данных. Базы данных есть везде: от маленького интернет-магазина до социальной сети. Sql будет легко выучить, если подписаться на официальный русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсах. Стоит подписаться!
5 596
🖼️ Библиотека Python: PyFlux
PyFlux — это библиотека для Python, предназначенная для моделирования временных рядов, которая предлагает широкий спектр статистических и эконометрических моделей для анализа и прогнозирования данных, изменяющихся во времени. Она включает в себя такие инструменты, как ARIMA, GARCH и байесовские модели, делая PyFlux мощным решением для аналитиков и исследователей, работающих с временными рядами в различных областях.
⚙️ Пример использования
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt
# Генерируем искусственные данные временного ряда
np.random.seed(42)
data = np.random.normal(0, 1, 100).cumsum()
# Используем модель ARIMA
model = sm.tsa.ARIMA(data, order=(2, 1, 2)) # параметры (p,d,q) для ARIMA модели
results = model.fit()
# Выводим сводку по модели
print(results.summary())
# Строим график исходных данных и прогнозируемых значений
plt.figure(figsize=(10, 6))
plt.plot(data, label='Исходные данные')
plt.plot(results.fittedvalues, color='red', label='Прогнозируемые значения')
plt.legend()
plt.show()
В этом примере мы сначала генерируем искусственный временной ряд с помощью накопления случайных значений. Затем мы применяем к этим данным модель ARIMA с порядком (2, 1, 2), что означает 2 авторегрессионных компонента, 1 порядок интегрирования (разности для достижения стационарности) и 2 скользящих средних компонента. После обучения модели выводится сводка с её параметрами, а также строится график, на котором сравниваются исходные данные и прогнозируемые значения модели.
✔️ Установка
pip install statsmodels
⛓ Ссылка на документацию
@programistica // #Library5 596
💻 Вопрос из собеседования: Что такое абстракции у словаря и списка в Python?
Они представляют собой синтаксические конструкции, облегчающие создание словаря или списка на основе существующих итеруемых. Создание происходит циклом внутри самого объекта.
#Абстракция словаря
dict_comprehension = {key:val for key, val in emumerate('sample')}
print(dict_comprehension)
#Абстракция списка
list_comprehension = [i for i in range(5)]
print(list_comprehension)
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
Мини-курс для тех, кто хочет прокачать свои навыки в направлении Python-разработки и добавить 4 крутых проекта в портфолио.
Регистрация по ссылке: https://epic.st/nnsNH?erid=2VtzqxKxJn3
Кому будет полезен мини-курс:
— Тем, кто уже знает основы Python и хочет дополнить базовые знания крутой практикой
— Тем, кто жаждет карьерных перемен
— Тем, кто хочет попасть в IT, но сомневается
Спикер — Анастасия Борнева, руководитель направления по исследованию данных в «Сбере».
Что будете делать:
— Создадите бота для Telegram, который умеет переводить голос в текст
— Сделаете бота умнее — научите его обрабатывать фотографии
— Узнаете, как парсить сайты — собирать информацию с веб-страниц в удобные таблицы
— Напишете сайт с помощью инструмента Flask
В финале будет прямой эфир, где вы сможете обсудить практические работы и задать вопросы спикеру.
Все участники получат в подарок полезные материалы с чек-листами, гайдами и другими бонусами.
Откройте новые возможности!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880.
5 596
⚙️ Алгоритм Сортировка подсчетом (Counting Sort)
Сортировка подсчетом — это алгоритм сортировки, который сортирует элементы коллекции путем подсчета количества объектов с различными ключевыми значениями. Это несравнительный алгоритм сортировки, что означает, что он не сравнивает элементы напрямую для определения их порядка. Алгоритм особенно эффективен, когда диапазон возможных элементов не слишком велик по сравнению с количеством элементов для сортировки.
Принцип работы
Сортировка подсчетом работает следующим образом:
⏺Подсчет: Определите количество каждого уникального элемента в исходном массиве.
⏺Агрегация: Преобразуйте подсчеты так, чтобы каждый элемент подсчета указывал на позицию в отсортированном массиве.
⏺Распределение: Разместите каждый элемент из исходного массива на правильную позицию в отсортированном массиве, используя данные агрегированных подсчетов.
Пример
Предположим, у нас есть массив [4, 2, 2, 8, 3, 3, 1], и мы хотим его отсортировать.
⏺Подсчет: Сначала подсчитаем количество каждого элемента. Для нашего массива:
1: 1 раз
2: 2 раза
3: 2 раза
4: 1 раз
8: 1 раз
⏺Агрегация: Затем мы агрегируем подсчеты. Каждое значение подсчета складывается с предыдущим. Это дает нам позиции в отсортированном массиве:
1: 1
2: 1 + 2 = 3
3: 3 + 2 = 5
4: 5 + 1 = 6
8: 6 + 1 = 7
⏺Распределение: Наконец, мы распределяем элементы в новом массиве на основе агрегированных подсчетов:
[1, 2, 2, 3, 3, 4, 8]
Теперь давайте создадим скрипт на python, который продемонстрирует этот прекрасный алгоритм.
def counting_sort(arr):
# Находим максимальное значение в массиве
max_val = max(arr)
# Создаем массив подсчета, инициализируем его нулями
count_arr = [0] * (max_val + 1)
# Подсчитываем количество каждого элемента и записываем в count_arr
for item in arr:
count_arr[item] += 1
# Переписываем arr, используя информацию из count_arr
index = 0
for i in range(len(count_arr)):
while count_arr[i] > 0:
arr[index] = i
index += 1
count_arr[i] -= 1
return arr
# Пример использования
arr = [4, 2, 2, 8, 3, 3, 1]
sorted_arr = counting_sort(arr)
print("Отсортированный массив:", sorted_arr)
Сложность и применение
Временная сложность сортировки подсчетом в общем случае составляет O(n + k), где n — количество элементов для сортировки, а k — диапазон значений этих элементов. Пространственная сложность алгоритма — O(k).
Сортировка подсчетом наиболее эффективна, когда диапазон значений (k) не слишком велик по сравнению с n. Она часто используется как подалгоритм в более сложных алгоритмах сортировки, таких как сортировка цифрами (Radix Sort).
Преимущества и недостатки
➡️Преимущества:
⏺Быстрая сортировка для небольшого диапазона значений.
⏺Стабильна: сохраняет относительный порядок равных элементов.
⏺Несравнительная: не зависит от сравнения элементов.
➡️Недостатки:
⏺Неэффективна для больших диапазонов значений.
⏺Требует дополнительной памяти для подсчетов.
Заключение
Сортировка подсчетом представляет собой мощный и эффективный алгоритм для определенных сценариев сортировки, особенно когда диапазон значений элементов ограничен. Она иллюстрирует важный принцип алгоритмической оптимизации: использование дополнительной информации о данных (в данном случае о диапазоне значений) для улучшения производительности.
@programistica // #article5 596
🖼️ Библиотека Python: PyO3
PyO3 — это мощная библиотека, которая позволяет разработчикам создавать расширения для Python на языке Rust, обеспечивая высокую производительность и безопасность типов, характерные для Rust. Это делает возможным писать критически важный по производительности код на Rust и легко интегрировать его в Python-проекты, сочетая лучшее из обоих миров: скорость и безопасность Rust с гибкостью и широкими возможностями Python.
Чтобы продемонстрировать работу PyO3, необходимо иметь установленный Rust и Cargo, а также Python. В этом примере мы создадим простую функцию на Rust, которая будет вызываться из Python. Эта функция будет принимать строку и возвращать ее длину.
⏺Установите PyO3, добавив его в зависимости в файле Cargo.toml вашего Rust проекта:
[package]
name = "pyo3_example"
version = "0.1.0"
edition = "2018"
[lib]
name = "pyo3_example"
crate-type = ["cdylib"]
[dependencies.pyo3]
version = "0.15.0"
features = ["extension-module"]
⏺В файле src/lib.rs создайте функцию на Rust, которая будет доступна из Python:
use pyo3::prelude::*;
use pyo3::wrap_pyfunction;
#[pyfunction]
fn string_length(s: String) -> PyResult<usize> {
Ok(s.len())
}
#[pymodule]
fn pyo3_example(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_function(wrap_pyfunction!(string_length, m)?)?;
Ok(())
}
Этот код определяет функцию string_length, которая принимает строку и возвращает ее длину. Декоратор #[pyfunction] и функция wrap_pyfunction! используются для регистрации этой функции в модуле Python.
⏺Соберите ваш Rust проект, используя Cargo:
cargo build --release
⏺После успешной сборки в директории target/release появится файл с расширением .so (для Linux и macOS) или .dll (для Windows), который можно импортировать в Python. Например, если ваш проект называется pyo3_example, имя файла будет libpyo3_example.so или pyo3_example.dll.
⏺Импортируйте и используйте ваш модуль в Python:
import sys
# Добавьте путь к скомпилированному файлу в список путей поиска
sys.path.append("path/to/your/target/release")
import pyo3_example
print(pyo3_example.string_length("Hello, Rust!"))
Этот Python скрипт импортирует модуль, созданный на Rust, и вызывает функцию string_length, передавая ей строку. В результате будет выведена длина строки.
⛓ Ссылка на документацию
@programistica // #Library5 596
❤️ Все платные курсы и книги выложили в Telegram
Крупнейшая база материалов по всем популярным языкам программирования теперь доступна бесплатно:
272 видео, 98 книг — JavaScript
352 видео, 87 книг — Python
145 видео, 71 книга — TypeScript
265 видео, 103 книги — Java
184 видео, 78 книг — C#
187 видео, 98 книг — C++
138 видео, 82 книги — PHP
112 видео, 61 книга — Shell
192 видео, 70 книг — Go
98 видео, 32 книги — Rust
202 видео, 94 книги — SQL
194 видео, 78 книг — Django
173 видео, 85 книг — Linux
155 видео, 44 книги — Flask
149 видео, 27 книг — QA
207 видео, 62 книги — Data Science
217 видео, 77 книг — Разработка ботов
164 видео, 96 книг — Разработка игр
🔒 Ежедневно куча материалов сливается в канал Easy Dev
5 596
💻 Вопрос из собеседования: Что такое функция map в Python?
map() — это функция, которая принимает другую в качестве аргумента, а затем применяет её ко всем элементам итератора, передаваемым ей в качестве другого аргумента. Функция вернет объект map, поэтому нам нужно преобразовать его в объект списка.
def number_exponential(num):
return num**2
number_list = [2,3,4,5]
print(list(map(number_exponential, number_list)))
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
👀 Книга: Программирование на Python для абсолютных новичков
⏺Знакомство с Python
⏺Основы
⏺Работа с данными
⏺Управление потоком
⏺Работа с файлами
⏺Что такое функции
⏺Импорт модулей
И многое другое
@programistica // #doc
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
