ch
Feedback
Pythoner

Pythoner

前往频道在 Telegram

Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode

显示更多
6 621
订阅者
+124 小时
-27
-3130
帖子存档
Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких 30 дней бесплатно. Кинопоиск
Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких 30 дней бесплатно. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте сейчас❤️ Попробовать #реклама 18+ music.yandex.ru О рекламодателе Реклама на Яндексе

✈️ В Python Selenium — это мощная библиотека для автоматизации веб-браузеров. Она позволяет управлять браузером программно, и
✈️ В Python Selenium — это мощная библиотека для автоматизации веб-браузеров. Она позволяет управлять браузером программно, имитируя действия пользователя, такие как клики, ввод текста и навигация. ➡️ Применение Selenium широко распространено в веб-тестировании, веб-скрапинге и автоматизации задач. Она поддерживает различные браузеры, включая Chrome, Firefox, Safari и Edge. ➡️ Вот пример использования Selenium для автоматизации открытия страницы и поиска элемента:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Инициализация драйвера Chrome (убедитесь, что ChromeDriver установлен и находится в PATH)
driver = webdriver.Chrome()

try:
    # Открытие страницы
    driver.get("https://www.example.com")

    # Явное ожидание элемента с ID "my-element" (до 10 секунд)
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "my-element"))
    )

    # Вывод текста элемента
    print(element.text)

finally:
    # Закрытие браузера
    driver.quit()
⬆️ В этом примере показано, как использовать Selenium для открытия веб-страницы, ожидания загрузки определенного элемента с помощью WebDriverWait и извлечения его текста. Убедитесь, что у вас установлен ChromeDriver и он добавлен в переменную окружения PATH или указан в executable_path при инициализации драйвера. Этот пример демонстрирует базовый сценарий использования Selenium, который можно расширить для выполнения более сложных действий, таких как заполнение форм, взаимодействие с JavaScript и обработка динамически загружаемого контента. 🐍 Pythoner

✈️Sketch — это библиотека для статистического анализа и обработки данных. Она позволяет быстро проводить первичный анализ дан
✈️Sketch — это библиотека для статистического анализа и обработки данных. Она позволяет быстро проводить первичный анализ данных и строить прототипы моделей машинного обучения. ➡️Основные возможности: — Быстрый и эффективный подсчёт статистик по данным, таких как сумма, среднее, медиана, дисперсия. — Аппроксимация распределений и плотностей вероятности. — Вычисление квантилей, сглаживания, гистограмм. — Тестирование статистических гипотез, оценка p-value. — Генерация случайных чисел из разных распределений. ➡️Sketch позволяет ускорить статистический анализ данных с помощью простого и интуитивного API и используется для: — Первичного анализа и визуализации данных. — Статистических тестов в научных исследованиях. — Построения прототипов моделей машинного обучения. — Анализа пользовательских действий и событий. — Симуляции процессов на основе статистических моделей. 🐍 Pythoner

Крупнейший университет искусственного интеллекта Приглашаем на бесплатный однодневный интенсив по AI! Освой искусственный инт
Крупнейший университет искусственного интеллекта Приглашаем на бесплатный однодневный интенсив по AI! Освой искусственный интеллект для профессионального роста: создавай нейросети, автоматизируй бизнес-задачи и зарабатывай на AI-решениях. ✨ 8 000+ студентов со всего мира ✨ 600+ AI-проектов, созданных студентами ✨ Сборная Университета — победители крупнейших AI-хакатонов России ✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие) ✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие) Будем рады видеть тебя в наших рядах! Узнать больше #реклама 16+ neural-university.ru О рекламодателе

✈️ В Python aioredis — это асинхронная библиотека для работы с базой данных Redis. Она построена на базе asyncio и предоставл
✈️ В Python aioredis — это асинхронная библиотека для работы с базой данных Redis. Она построена на базе asyncio и предоставляет неблокирующий интерфейс для взаимодействия с Redis, что позволяет эффективно обрабатывать множество запросов одновременно. ➡️ Применение aioredis особенно полезно в асинхронных приложениях, где требуется высокая производительность и отзывчивость. aioredis позволяет выполнять операции с Redis без блокировки основного потока, что повышает эффективность использования ресурсов. ➡️ Вот пример использования библиотеки aioredis в Python:
import asyncio
import aioredis

async def redis_example():
    try:
        # Подключение к Redis
        redis = await aioredis.create_redis_pool(
            'redis://localhost',
            db=0,
            encoding='utf-8',  # Декодирование в UTF-8
            minsize=5,  # Минимальное количество соединений в пуле
            maxsize=10   # Максимальное количество соединений в пуле
        )


        # Работа со строками
        await redis.set('name', 'John Doe')
        name = await redis.get('name')
        print(f"Name: {name}") # Вывод: Name: John Doe



        # Работа со списками
        await redis.rpush('my_list', 'one', 'two', 'three')
        list_length = await redis.llen('my_list')
        list_items = await redis.lrange('my_list', 0, -1)
        print(f"List length: {list_length}") # Вывод: List length: 3
        print(f"List items: {list_items}") # Вывод: List items: ['one', 'two', 'three']


        # Работа с хэшами
        await redis.hset('user:1', 'name', 'Alice')
        await redis.hset('user:1', 'age', 30)
        user_data = await redis.hgetall('user:1')
        print(f"User data: {user_data}") # Вывод: User data: {'name': 'Alice', 'age': '30'}


        # Работа с множествами
        await redis.sadd('my_set', 'apple', 'banana', 'cherry')
        set_members = await redis.smembers('my_set')
        print(f"Set members: {set_members}") # Вывод: Set members: {'apple', 'banana', 'cherry'}



        #  Использование pipeline
        async with redis.pipeline(transaction=True) as pipe:  # transaction=True для атомарности операций
            await pipe.set('key1', 'value1')
            await pipe.get('key1')
            await pipe.hset('user:2', 'name', 'Bob')
            results = await pipe.execute()
        print(f"Pipeline results: {results}")



        redis.close()
        await redis.wait_closed()


    except aioredis.RedisError as e:
        print(f"Ошибка Redis: {e}")


if __name__ == "__main__":
    asyncio.run(redis_example())
⬆️ В этом примере показано асинхронное подключение к Redis с использованием aioredis.create_redis_pool, работа с различными типами данных (строки, списки, хэши, множества), и использование pipeline для пакетной обработки команд в транзакции. encoding='utf-8' в параметрах подключения обеспечивает декодирование в UTF-8. minsize и maxsize управляют размером пула соединений. Обработка исключения aioredis.RedisError помогает выявить проблемы с Redis. Важно запускать асинхронный код внутри asyncio.run. 🐍 Pythoner

Крупнейший университет искусственного интеллекта Учим использовать ChatGPT в профессиональных целях, создавать нейро-сотрудни
Крупнейший университет искусственного интеллекта Учим использовать ChatGPT в профессиональных целях, создавать нейро-сотрудников и зарабатывать на искусственном интеллекте. ✨ 8 000+ студентов со всего мира ✨ 600+ AI-проектов, созданных студентами ✨ Сборная Университета — победители крупнейших AI-хакатонов России ✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие) ✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие) Будем рады видеть тебя в наших рядах! Узнать больше #реклама 16+ neural-university.ru О рекламодателе

✈️ В Python tqdm — это быстрая, расширяемая библиотека индикаторов выполнения. Она позволяет легко добавлять индикаторы прогр
✈️ В Python tqdm — это быстрая, расширяемая библиотека индикаторов выполнения. Она позволяет легко добавлять индикаторы прогресса к циклам, итерациям и другим длительным операциям, предоставляя пользователю визуальную информацию о ходе выполнения. ➡️ Применение tqdm повышает удобство использования скриптов и программ, особенно при работе с большими объемами данных или длительными вычислениями. tqdm автоматически оценивает оставшееся время, отображает скорость выполнения и предоставляет множество настроек для кастомизации внешнего вида индикатора. ➡️ Вот пример использования tqdm:
from tqdm import tqdm
import time

# Простой пример с range
for i in tqdm(range(100)):
    time.sleep(0.02)  # Имитация длительной операции


# С ручным обновлением
with tqdm(total=100) as pbar:
    for i in range(10):
        time.sleep(0.1)
        pbar.update(10) # Обновление индикатора на 10 единиц


# С описанием
for i in tqdm(range(100), desc="Обработка данных"):
    time.sleep(0.02)

# Вложенные циклы
from tqdm import trange
for i in trange(4, desc="1st loop"):
    for j in trange(5, desc="2nd loop", leave=False):
        for k in trange(50, desc="3rd loop", leave=False):
            time.sleep(0.001)

# С pandas
import pandas as pd
df = pd.DataFrame({'a': range(10000)})

# Применение tqdm к pandas DataFrame (apply с progress_apply)
tqdm.pandas() #  Необходимо для progress_apply
df['b'] = df['a'].progress_apply(lambda x: x*x) #  Индикатор выполнения для apply



# Пример с файлами
import os
with open("large_file.txt", "w") as f:
    for i in trange(10000, desc="Создание файла"):
        f.write("This is a line of text.\n")


with open("large_file.txt", "r") as f:
    for line in tqdm(f, total=os.path.getsize("large_file.txt"), unit="B", unit_scale=True, unit_divisor=1024, desc="Чтение файла"):
        # Обработка каждой строки файла
        pass
⬆️ В этом примере демонстрируются различные способы использования tqdm. Показаны примеры с range, ручным обновлением, описанием, вложенными циклами, интеграцией с pandas DataFrame с помощью progress_apply и обработкой файлов. Обратите внимание на использование tqdm.pandas() для работы с pandas. Пример с файлами показывает, как отображать прогресс чтения/записи с учетом размера файла. 🐍 Pythoner

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

✈️ Асинхронное использование httpx. В Python httpx предоставляет мощный и удобный асинхронный интерфейс для работы с HTTP-зап
✈️ Асинхронное использование httpx. В Python httpx предоставляет мощный и удобный асинхронный интерфейс для работы с HTTP-запросами. Асинхронный режим позволяет эффективно обрабатывать множество запросов параллельно, не блокируя основной поток выполнения, что особенно полезно при взаимодействии с медленными или перегруженными серверами. ➡️ Применение асинхронного httpx идеально подходит для ситуаций, где требуется высокая производительность при работе с сетью, например, при веб-скрапинге, взаимодействии с API, загрузке файлов и обработке потоковых данных. Асинхронный подход позволяет максимально использовать ресурсы системы и сократить время ожидания ответов от сервера. ➡️ Вот примеры, демонстрирующие асинхронную работу с httpx:
import asyncio
import httpx

async def fetch_page(client: httpx.AsyncClient, url: str):
    try:
        response = await client.get(url, timeout=10.0)
        response.raise_for_status()
        return {"url": url, "status_code": response.status_code, "content": response.text}
    except httpx.HTTPError as exc:
        return {"url": url, "error": f"HTTP Error: {exc}"}
    except httpx.TimeoutException:
        return {"url": url, "error": "Request timed out"}
    except Exception as e:
        return {"url": url, "error": f"An unexpected error occurred: {e}"}


async def main():
    urls = [
        "https://www.example.com",
        "https://www.google.com",
        "https://www.python.org",
        "https://this-is-an-invalid-url.com",  # Пример некорректного URL
        "https://jsonplaceholder.typicode.com/todos/1"  # Пример API
    ]

    async with httpx.AsyncClient(http2=True) as client:  # Использование HTTP/2
        tasks = [fetch_page(client, url) for url in urls]
        results = await asyncio.gather(*tasks)

    for result in results:
        print(result)




async def make_requests_with_limits(urls, max_concurrent=5):
    semaphore = asyncio.Semaphore(max_concurrent)

    async def fetch_with_semaphore(url):
        async with semaphore:
            return await fetch_page(httpx.AsyncClient(), url)


    async with httpx.AsyncClient() as client:
        tasks = [fetch_with_semaphore(url) for url in urls]
        results = await asyncio.gather(*tasks)

    for result in results:
        print(result)




if __name__ == "__main__":
    asyncio.run(main())

    # Пример с ограничением числа одновременных запросов
    asyncio.run(make_requests_with_limits(["https://www.example.com"] * 10))
⬆️ В этом примере fetch_page теперь принимает httpx.AsyncClient в качестве аргумента, что позволяет использовать один клиент для всех запросов внутри main. Это способствует более эффективному использованию соединений. Добавлен пример с некорректным URL и API-запросом для демонстрации обработки ошибок и различных типов ответов. Также показано, как использовать HTTP/2 с помощью httpx.AsyncClient(http2=True). Дополнительно, представлен пример make_requests_with_limits с использованием asyncio.Semaphore для ограничения количества одновременных запросов, что позволяет контролировать нагрузку на сервер и предотвращать ошибки, связанные с превышением лимитов. 🐍 Pythoner

Универсальная платформа обработки и хранения данных YDB Узнайте больше про возможности и интерфейс на сайте СУБД Яндекса. Узнать больше #реклама 16+ ydb.yandex.ru О рекламодателе Реклама на Яндексе

Repost from IT memer

✈️ В Python pathlib — это модуль, предоставляющий объектно-ориентированный способ работы с файловыми путями и директориями. О
✈️ В Python pathlib — это модуль, предоставляющий объектно-ориентированный способ работы с файловыми путями и директориями. Он предлагает более удобный и читаемый интерфейс по сравнению с традиционными строковыми операциями с путями. ➡️ Применение pathlib упрощает работу с файловой системой, делая код более понятным и менее подверженным ошибкам. pathlib позволяет выполнять различные операции с файлами и директориями, такие как создание, удаление, переименование, чтение и запись, используя методы объектов Path. ➡️ Вот пример использования pathlib:
from pathlib import Path

# Создание объекта Path
file_path = Path("my_file.txt")
directory_path = Path("my_directory")

# Проверка существования файла/директории
if file_path.exists():
    print(f"Файл {file_path} существует")
else:
    print(f"Файл {file_path} не существует")

if directory_path.exists():
    print(f"Директория {directory_path} существует")

if directory_path.is_dir():
    print(f"Это директория")

# Создание директории
directory_path.mkdir(parents=True, exist_ok=True) # parents=True создает все родительские директории при необходимости, exist_ok=True предотвращает ошибку, если директория уже существует

# Создание файла и запись в него
file_path.write_text("Hello, pathlib!")

# Чтение из файла
file_content = file_path.read_text()
print(f"Содержимое файла: {file_content}")

# Переименование файла
new_file_path = Path("my_new_file.txt")
file_path.rename(new_file_path)

# Удаление файла
new_file_path.unlink()

# Перебор файлов в директории
for file in directory_path.iterdir():
    print(file)

# Получение абсолютного пути
absolute_path = directory_path.resolve()
print(f"Абсолютный путь: {absolute_path}")


# Создание вложенных директорий и файла
nested_dir = Path("my_directory/nested/deeper")
nested_dir.mkdir(parents=True, exist_ok=True)
nested_file = nested_dir / "nested_file.txt" #  / используется для объединения путей
nested_file.write_text("Content in nested file")


import shutil

# Удаление директории и ее содержимого
shutil.rmtree(directory_path) #  rmtree из shutil используется для удаления непустых директорий
⬆️ В этом примере демонстрируются различные операции с файлами и директориями с использованием pathlib. Создаются объекты Path, проверяется существование файлов и директорий, создаются и удаляются файлы и директории, производится чтение и запись данных, переименование файлов, перебор файлов в директории и получение абсолютного пути. Также показан пример создания вложенных директорий и файла внутри них с помощью оператора /. И наконец, показано, как удалить директорию и ее содержимое с помощью shutil.rmtree. 🐍 Pythoner

✈️ Conda — это кроссплатформенный менеджер пакетов и система управления окружением, которая упрощает установку, обновление и
✈️ Conda — это кроссплатформенный менеджер пакетов и система управления окружением, которая упрощает установку, обновление и управление пакетами, особенно для научных вычислений и анализа данных. Conda работает с языками программирования Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN. ➡️ Применение conda помогает изолировать проекты с разными зависимостями, избегая конфликтов версий. Conda управляет не только пакетами Python, но и зависимостями на уровне операционной системы, такими как библиотеки, что особенно важно при работе с научными библиотеками. Conda также упрощает создание воспроизводимых сред для исследований и разработок. ➡️ Вот пример использования conda для создания и управления виртуальными окружениями:
# Создать новое окружение с Python 3.9
conda create -n my_env python=3.9

# Активировать окружение
conda activate my_env

# Установить пакеты в активное окружение
conda install numpy pandas scipy

# Просмотреть список установленных пакетов
conda list

# Деактивировать окружение
conda deactivate

# Удалить окружение
conda remove -n my_env --all

# Создать окружение из файла environment.yml
conda env create -f environment.yml

# Экспортировать окружение в файл environment.yml
conda env export > environment.yml

# Обновить все пакеты в активном окружении
conda update --all

# Поиск пакета
conda search numpy
⬆️ В этом примере показаны основные команды conda для создания, активации, деактивации и удаления виртуальных окружений. Также продемонстрировано, как устанавливать пакеты, просматривать список установленных пакетов, создавать окружение из файла environment.yml, экспортировать текущее окружение в файл environment.yml , обновлять все пакеты в окружении и искать нужный пакет. Использование виртуальных окружений с conda — лучшая практика для управления зависимостями проектов и предотвращения конфликтов. 🐍 Pythoner

✈️Сегодня поговорим о вечном противостоянии в мире тестирования. Знаете, как в споре "табы или пробелы", у нас есть другая го
✈️Сегодня поговорим о вечном противостоянии в мире тестирования. Знаете, как в споре "табы или пробелы", у нас есть другая горячая тема: unit-тесты против property-based тестирования. Давайте разберёмся без занудства, но с конкретикой! ➡️Unit-тестирование - это как стрельба по мишеням. Мы точно знаем, какой результат хотим получить, и проверяем конкретные случаи. Например:
def test_sum():
    assert sum([1, 2, 3]) == 6
    assert sum([-1, 1]) == 0
Плюсы unit-тестов: —Понятны даже джуниору —Легко дебажить —Отлично подходят для документирования кода —Быстро выполняются ❌Минусы: —Покрывают только те кейсы, о которых мы подумали —Часто пропускаем edge-cases —Может быть много копипасты ➡️А вот property-based тестирование - это как игра в рулетку, только с гарантированным выигрышем! Вместо конкретных значений мы определяем свойства, которым должна соответствовать наша функция. Библиотека (например, hypothesis) сама генерирует тестовые данные:
from hypothesis import given
import hypothesis.strategies as st

@given(st.lists(st.integers()))
def test_sum_properties(numbers):
    assert sum(numbers) == sum(reversed(numbers))
    assert sum(numbers + [0]) == sum(numbers)
Преимущества property-testing: —Находит неочевидные баги —Меньше кода, больше покрытие —Заставляет думать о свойствах функций, а не о конкретных значениях ❌Недостатки: —Сложнее придумывать правильные свойства —Медленнее выполняются —Может быть сложно понять, почему тест упал 💡Не выбирайте что-то одно! Используйте unit-тесты для очевидных кейсов и документирования, а property-based - для поиска краевых случаев и сложной логики. Особенно это актуально для математических функций, парсеров и сериализаторов. 📍В идеальном мире ваши тесты должны быть как хороший детектив - проверять очевидное и раскрывать неожиданное. И помните: лучший тест - тот, который ловит баги до прода! 🐍 Pythoner

Хочешь узнать все самые интересные фишки в DevOps? Подписывайся на Telegram-канал DevOps Bootcamp от учебного центра Слёрм и
Хочешь узнать все самые интересные фишки в DevOps? Подписывайся на Telegram-канал DevOps Bootcamp от учебного центра Слёрм и забирай подарок! Для тех, кто собирается в DevOps ы разработали свой Roadmap на основе опыта спикеров Слёрма. Он сделан с учётом российских реалий, разбит на уровни, фокусирует внимание на том, что в первую очередь понвдобится для старта и роста в профессии, и содержит ссылки на дополнительные источники. Подписаться #реклама 16+ slurm.io О рекламодателе

✈️ В Python pypy3 — это альтернативная реализация интерпретатора Python, использующая JIT-компиляцию (Just-In-Time). Это озна
✈️ В Python pypy3 — это альтернативная реализация интерпретатора Python, использующая JIT-компиляцию (Just-In-Time). Это означает, что pypy3 динамически компилирует Python-код в машинный код во время выполнения, что часто приводит к значительному увеличению скорости работы программ. ➡️ Применение pypy3 особенно эффективно для CPU-bound задач, где основное время выполнения тратится на вычисления. В таких случаях pypy3 может значительно превзойти стандартный интерпретатор CPython. Однако, pypy3 не всегда является оптимальным выбором, особенно для программ, интенсивно использующих C-расширения, которые могут работать медленнее или вообще не работать с pypy3. ➡️ Вот пример, демонстрирующий разницу в производительности между CPython и pypy3:
import time

def compute_intensive_task(n):
    result = 0
    for i in range(n):
        result += i * i
    return result

start_time = time.time()
result = compute_intensive_task(10000000)  #  CPU-bound задача
end_time = time.time()

print(f"Результат: {result}")
print(f"Время выполнения: {end_time - start_time} секунд")


#  Для запуска с pypy3: pypy3 example.py
⬆️ В этом примере выполняется вычислительно интенсивная задача. Запустив этот код сначала с помощью стандартного интерпретатора CPython, а затем с помощью pypy3, можно заметить существенную разницу во времени выполнения. pypy3, вероятно, выполнит задачу значительно быстрее благодаря JIT-компиляции. Важно помнить, что результаты могут варьироваться в зависимости от конкретной задачи и аппаратного обеспечения. Этот пример демонстрирует преимущества pypy3 для CPU-bound задач. Для I/O-bound задач, где основное время тратится на ожидание ввода/вывода (например, сетевые запросы), разница в производительности может быть менее заметной. 🐍 Pythoner

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

✈️ В Python NumPy — это фундаментальная библиотека для научных вычислений. Она предоставляет мощный N-мерный массив (ndarray)
✈️ В Python NumPy — это фундаментальная библиотека для научных вычислений. Она предоставляет мощный N-мерный массив (ndarray), а также широкий набор функций для работы с этими массивами. NumPy является основой для многих других библиотек, таких как SciPy, Pandas и Matplotlib. ➡️ Применение NumPy крайне разнообразно и включает в себя математические операции, линейную алгебру, обработку сигналов, работу с изображениями, машинное обучение и многое другое. Благодаря векторизованным операциям и эффективной работе с памятью, NumPy обеспечивает высокую производительность при работе с большими объемами данных. ➡️ Вот пример использования NumPy:
import numpy as np

# Создание массивов:
a = np.array([1, 2, 3])  # Одномерный массив
b = np.array([[1, 2, 3], [4, 5, 6]])  # Двумерный массив
c = np.zeros((2, 3))  # Массив из нулей
d = np.ones((3, 2))  # Массив из единиц
e = np.arange(10)  # Массив с числами от 0 до 9
f = np.linspace(0, 1, 5)  # Массив из 5 чисел, равномерно распределенных от 0 до 1
g = np.random.rand(2, 2)  # Массив случайных чисел от 0 до 1

print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)
print("e:", e)
print("f:", f)
print("g:", g)



# Математические операции:
print("a + 2:", a + 2)
print("a * 3:", a * 3)
print("a.sum():", a.sum())  # Сумма элементов массива
print("b.mean():", b.mean()) # Среднее значение элементов массива

print("a.dot(a): ", a.dot(a)) # Скалярное произведение векторов



# Индексация и срезы:
print("a[0]:", a[0])
print("b[1, 2]:", b[1, 2])
print("e[1:4]:", e[1:4])



# Изменение формы массива:
print("b.reshape(3, 2):", b.reshape(3, 2))
print("a.T:", a.T) # Транспонирование массива


# Линейная алгебра:
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print("A.dot(B):", A.dot(B)) # Умножение матриц
print("np.linalg.inv(A):", np.linalg.inv(A)) # Обратная матрица
⬆️ В этом примере демонстрируются различные способы создания массивов NumPy, выполнение математических операций с массивами, индексация и срезы массивов, изменение формы массивов, а также базовые операции линейной алгебры, такие как умножение матриц и вычисление обратной матрицы. NumPy предоставляет множество других функций для работы с массивами, включая функции для работы с файлами, статистические функции, функции для обработки изображений и сигналов, и многое другое. 🐍 Pythoner

✈️ В Python shutil (shell utilities) — это высокоуровневая библиотека, предоставляющая функции для работы с файлами и директо
✈️ В Python shutil (shell utilities) — это высокоуровневая библиотека, предоставляющая функции для работы с файлами и директориями. Она расширяет возможности модуля os и упрощает выполнение распространенных операций, таких как копирование, перемещение, удаление, архивирование и работа с файловыми путями. ➡️ Применение shutil позволяет писать более чистый и понятный код при работе с файловой системой. Библиотека предоставляет удобные функции для выполнения сложных операций, например, рекурсивного копирования директорий или создания архивов различных форматов. ➡️ Вот пример использования shutil:
import shutil
import os

# Копирование файла:
shutil.copy("source_file.txt", "destination_folder/") # Копирование в директорию
shutil.copy("source_file.txt", "destination_file.txt") # Копирование с новым именем

# Копирование директории (рекурсивно):
shutil.copytree("source_folder", "destination_folder")

# Перемещение файла или директории:
shutil.move("source_file.txt", "destination_folder/")
shutil.move("source_folder", "destination_folder")

# Удаление файла:
os.remove("file_to_delete.txt")

# Удаление директории (рекурсивно):
shutil.rmtree("directory_to_delete")


# Создание архива:

shutil.make_archive("archive_name", "zip", "folder_to_archive") # ZIP архив
shutil.make_archive("archive_name", "gztar", "folder_to_archive") # tar.gz архив
shutil.make_archive("archive_name", "bztar", "folder_to_archive") # tar.bz2 архив
shutil.make_archive("archive_name", "xztar", "folder_to_archive") # tar.xz архив



# Работа с файловыми путями (некоторые примеры):

print(shutil.which("python")) #  Путь к исполняемому файлу python


#  Проверка дискового пространства

total, used, free = shutil.disk_usage("/")  #  Получение информации о дисковом пространстве (корневой раздел)
print(f"Total: {total // (2**30)} GiB")
print(f"Used: {used // (2**30)} GiB")
print(f"Free: {free // (2**30)} GiB")
⬆️ В этом примере демонстрируются функции shutil для копирования файлов и директорий, перемещения, удаления, создания архивов различных форматов, а также примеры работы с файловыми путями и проверки дискового пространства. Обратите внимание, что операции с файлами и директориями могут привести к безвозвратной потере данных, поэтому будьте осторожны при их использовании. Перед выполнением операций на реальных данных рекомендуется протестировать код на тестовых файлах и директориях. Также показан пример использования shutil.which для определения пути к исполняемому файлу и shutil.disk_usage для получения информации о дисковом пространстве. 🐍 Pythoner

IT-аутстаффинг Ежедневно публикуем запросы на аутстаффинг разработчиков Java, Python, Flutter, C#, 1С и других ИТ-специалисто
IT-аутстаффинг Ежедневно публикуем запросы на аутстаффинг разработчиков Java, Python, Flutter, C#, 1С и других ИТ-специалистов. Есть свой резерв, готовый прямо сейчас влиться в ваш проект. Посмотрите в канале наших свободных разработчиков. Подписаться #реклама О рекламодателе