NeuroCatalog | Каталог Нейросетей Нейросети | Midjourney | Промты | AI | Prompts | OpenAi | ChatGPT | Искусственный Интеллект
1.41K subscribers
235 photos
49 videos
6 files
117 links
Последние тренды в нейросетях и ИИ.
Download Telegram
Функция partial

Функция partial позволяет частично применить аргументы к функции и вернуть новую функцию с уже примененными аргументами.

Это удобно, когда нужно зафиксировать некоторые аргументы функции.

👉
Faker — полезная библиотека для генерации фиктивных данных. Поддерживает не только английский язык. Для русского нужно прописать fake = Faker(«ru_Ru»)

Перед работой не забудьте сделать pip install Faker

https://faker.readthedocs.io/en/master/

👉
Библиотека EasyOCR для распознавания текста на картинках

Поддерживает 80+ языков. Выдаёт результат в виде списка, каждый элемент которого представляет собой координаты ограничивающей рамки, обнаруженный текст и уровень уверенности модели.

Установка через pip install easyocr

https://github.com/JaidedAI/EasyOCR

👉
Float или Decimal: в чём различия и что лучше использовать?

И тот, и другой предназначены для работы с дробными числами, но есть нюанс. Float использует некоторое приближение при работе с числами с плавающей точкой, поэтому может вносить ошибки округления. То есть Float эффективный и быстрый, но не очень точный.

Эта особенность может мешать в некоторых случаях, например, при работе с деньгами. Ошибки округления могут привести к значительным потерям, если обрабатывается большое количество транзакций. Тогда лучше использовать Decimal. Его нужно импортировать — from decimal import Decimal. Передавать на вход следует строку. Как видно на картинке, благодаря Decimal устраняются возможные ошибки округления.

👉
Библиотека captcha, генерирующая звуковые и графические CAPTCHA

Установка — pip install captcha


Аудио- и графические CAPTCHA находятся в отдельных модулях:


from captcha.audio import AudioCaptcha
from captcha.image import ImageCaptcha

audio = AudioCaptcha(voicedir='/path/to/voices')
image = ImageCaptcha(fonts=['/path/A.ttf', '/path/B.ttf'])

data = audio.generate('1234')
audio.write('1234', 'out.wav')

data = image.generate('1234')
image.write('1234', 'out.png')


https://github.com/lepture/captcha

👉
Как реализовать очередь в Python

Очереди (Queues) — одна из структур данных, используемая для хранения коллекций элементов в порядке first-in, first-out (FIFO). Всё, как в настоящей очереди, — кто первым вошёл, то раньше всех и вышел.

В Python очереди можно реализовать с помощью класса deque() из модуля collections или модуля queue.

Чтобы добавить элементы в очередь: в deque используем метод append(), в Queue — put()
Чтобы удалить элементы из очереди: в deque — метод popleft(), в Queue — get()
Чтобы проверить размер очереди, используем len()

Стоит отметить, что queue.Queue предназначен для многопоточного программирования.

👉
Что делает функция takewhile() модуля itertools

Функция создаёт итератор, возвращающий элементы из итерируемого объекта до тех пор, пока указанное условие истинно (True или 1). Как только условие становится ложным, итератор прекращает свою работу и больше не возвращает элементы.

В примере takewhile будет возвращать элементы из списка my_list, пока они меньше пяти. Как только встретится элемент, равный или больший пяти, работа прекратится.

👉
Starmap()

starmap() принимает в качестве аргументов другую функцию и итерируемый объект, элементы которого представлены кортежами. Переданная функция применяется к каждому из кортежей, каждый кортеж распаковывается, и его элементы передаются в функцию как отдельные аргументы.

Таким образом, starmap() можно использовать вместо map(), если данные были предварительно упакованы в кортежи.

В примере starmap() позволяет вычислить квадраты чисел в кортежах в списке и сложить их.

👉
Зачем нужен модуль enum

Содержит в себе перечисления, которые используются для создания именованных констант. Рассмотрим на примере:

Вы пишете приложение, в котором нужно обрабатывать различные типы ошибок (404, 500 и так далее). Перечисления могут быть использованы для представления разных кодов ошибок.

По сути, перечисления — это набор символических имён, связанных с уникальными значениями. По ним можно итерироваться. В целом, модуль enum позволяет создать более читаемый и самодокументирующийся код.

https://habr.com/ru/companies/timeweb/articles/564826/

👉
Модуль pprint для красивого вывода сложных структур данных

Используется как обычный print(), но в отличие от него выводит данные в удобном для чтения человеком виде.

Также в модуле есть функция pformat(), которая создаёт строковые представления вместо вывода. Это может пригодиться для логгирования.

Ещё для pprint() можно задать ширину экрана печати, отступ последующего уровня вложенности и даже автоматически отсортировать словарь перед выводом.

👉
Минимальные примеры структур данных и алгоритмов на Python

Устанавливается просто через pip install algorithms

Затем можно импортировать различные алгоритмы:
▫️сортировки (быстрая, пузырьком и ещё +22 вида);
▫️графовые;
▫️поиска;
▫️на деревьях и так далее.

https://github.com/keon/algorithms/

👉
Модуль fractions для работы с дробями

Создать рациональное число можно через Fraction() из пары целых чисел, другого рационального числа или строки. Numerator — это числитель, а denominator — знаменатель. По умолчанию numerator=0, denominator=1.

Целые и вещественные числа Python можно преобразовать в дробь, передав их Fraction().

С модулем fractions устраняются проблемы с ошибками представления, возникающие в числах с плавающей точкой.

👉
Более эффективный метод объединения строк

Про объединение (конкатенацию) строк с помощью оператора + говорят в каждом туториале по Python для новичков. Однако иногда это не самый эффективный способ решить задачу.

Дело в том, что строки — неизменяемые объекты в Python. Это означает, что каждый раз при конкатенации вы создаёте новую строку с объединённым содержимым.

Более экономно по памяти и быстрее будет использовать метод join() для списков. При вызове он создаёт единственную строку.

👉
Операции над множествами в Python

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

Примеры основных операций над множествами в Python:

Создание множества
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}


Объединение множеств (union)
Объединение возвращает множество, содержащее все элементы обоих множеств.
c = a.union(b)
# или можно использовать оператор |
c = a | b
print(c) # {1, 2, 3, 4, 5, 6}


Пересечение множеств (intersection)
Пересечение возвращает множество, содержащее только общие элементы двух множеств.
c = a.intersection(b)
# или можно использовать оператор &
c = a & b
print(c) # {3, 4}


Разность множеств (difference)
Разность возвращает множество, содержащее элементы, которые находятся только в одном множестве.
c = a.difference(b)
# или можно использовать опера
...
Что делает класс ChainMap() модуля collections

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

Лучше всего посмотреть на примере:

d1 = dict(a=1, b=3)
d2 = dict(a=2, b=4, c=6)

from collections import ChainMap

chain = ChainMap(d1, d2)
print(chain['a']) # -> 1
print(chain['c']) # -> 6



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

Обновление или вставка в ChainMap затрагивают только первый входной словарь. Снова посмотрим на примере:

chain['c'] = -1
print(d1) # -> {'a': 1, 'b': 3, 'c': -1}
print(d2) # -> {'a': 2, 'b': 4, 'c': 6}


👉
Media is too big
VIEW IN TELEGRAM
Создайте мессенджер с помощью Django (за 6 минут) 🌮

0:00 Showing the final product
0:22 Setup Django and Daphne
1:08 Add async and sync views
2:09 Add templates with EventSource
2:52 Explaining how the chat works
3:35 Explaining how sending a message works
4:19 Create models to store data
4:25 Run our server
4:42 Visit our real-time chat app
5:28 Add styling to improve UI
6:00 Benefits and mailing list for more free content

источник

👉
Ускоряем работу python с numba

Numba — это Just-In-Time компилятор, который превращает ваш код на питоне в машинный код на лету. Это не просто мелкая оптимизация, а серьёзно ускорение.

Если вы знакомы с интерпретируемыми языками, вы знаете, что они обычно медленнее компилируемых из-за необходимости анализировать и исполнять код на лету. Но что, если бы вы могли получить лучшее из обоих миров? JIT-компиляция позволяет интерпретируемому языку, каким является питон, динамически компилировать части кода в машинный код, значительно ускоряя исполнение.

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

https://habr.com/ru/companies/otus/articles/784068/

👉
Что делает функция seed() модуля random

Функция seed() в модуле random в Python используется для инициализации генератора случайных чисел. По умолчанию генератор случайных чисел использует текущее системное время, чтобы генерировать случайные числа, но если задать определённое значение с помощью функции seed(), последовательность случайных чисел станет предсказуемой.

Пример использования:

import random

random.seed(10)
print(random.random()) # Всегда будет генерировать одно и то же число


Основные моменты:
- Если вызвать random.seed() с одним и тем же значением несколько раз, генератор будет создавать одну и ту же последовательность случайных чисел.
- Если seed() не вызывается или вызывается без аргументов, генерация случайных чисел будет происходить на основе текущего времени или другого системного источника.

Таким образом, использование seed() полезно, когда требуется воспроизвести результаты, например, в тестах или для отладки.

👉
Шпаргалка по Python. Часть 2


7. Работа с исключениями

#### Множественные исключения:

try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"Error: {e}")
except Exception as e:
print(f"Unhandled error: {e}")
finally:
print("Cleanup")


#### Создание своих исключений:

class MyCustomError(Exception):
pass

raise MyCustomError("This is a custom error")


8. Операции с числами и математикой

#### Округление и точные вычисления:

import decimal
from decimal import Decimal

decimal.getcontext().prec = 4
x = Decimal('1.12345')
y = Decimal('3.14159')
print(x * y) # Результат с 4 знаками после запятой


#### Математические операции:

import math

print(math.sqrt(16)) # 4.0
print(math.factorial(5)) # 120


9. Модули и пакеты

#### Импортирование модулей:

from my_module import my_function

my_function()


#### Динамический импорт:

module_name = 'math'
module = __import__(module_name)
print(module.sqrt(16)) # 4.0


10. Тестирование

#### Unittest:

import unittest

def add(a, b):
return a + b

class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)

if __name__ == '__main__':
unittest.main()


#### Pytest:

def add(a, b):
return a + b

def test_add():
assert add(2, 3) == 5


11. Работа с данными и библиотеками

#### NumPy для работы с массивами:

import numpy as np

a = np.array([1, 2, 3])
print(a * 2) # Умножение каждого элемента массива на 2


#### Pandas для работы с табличными данными:

import pandas as pd

data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
df = pd.DataFrame(data)
print(df)


12. Полезные утилиты

- Enumerate для индексации:

for index, value in enumerate(['a', 'b', 'c']):
print(index, value)


- Zip для объединения списков:

names = ['Alice', 'Bob']
ages = [25, 30]
for name, age in zip(names, ages):
print(f"{name} is {age} years old")


- Comprehensions для работы со сложными структурами данных:

matrix = [[i * j for j in range(5)] for i in range(5)]



👉