Hello World – Telegram
Hello World
1.68K subscribers
71 photos
6 videos
3 files
161 links
Be so good that you cannot be ignored. And then, go one step beyond.
Download Telegram
Hello World
Что выведет функция? def func(x, *y, **z): print(z) func(1,2,3) upd: вместо None я имел в виду пустой словарь {}.
Функция выведет пустой словарь {}

В момент инициализации функции, Python создает пустой словарь. Поскольку никаких именованных параметров не было передано в функцию (по сути мы передали 1 в x и (2, 3) в y), Python распечатает именно пустой словарь.
Распознавание лиц и верификация пользователей по ним – будущее или уже существующая реальность? Даже больше, каждый уже может написать свою подобную программу. Это настолько просто, что требуется буквально двадцать строк кода и всего лишь полчаса времени для понимания.

Читать статью
This media is not supported in your browser
VIEW IN TELEGRAM
Streamlit позволяет создавать приложения для проектов машинного обучения с обманчиво простыми скриптами Python. Он поддерживает горячую замену, поэтому ваши обновления обновляются в процессе редактирования и сохранения файла. Все, что вам нужно, это ваш любимый редактор и браузер. Посмотрите на Streamlit в действии.
Python имеет ужасную репутацию, когда речь идет о возможности параллельных вычислений. Не обращая внимания на типичные рассуждения о его потоках и GIL (который обычно нормально работает), реальная проблема многопоточности Python не техническая, а педагогическая. Распространенные руководства о библиотеках threading и multiprocessing в целом неплохие, но тяжеловаты для понимания.

Именно по этой причине я написал статью в которой рассматриваются возможности multiprocessing, доступные каждому.

Читать статью
В общем, мы создали объединенный чат нескольких каналов для взаимопомощи в программировании и просто общения – @python_chat_ru
Wolfram for Python

Может быть, кому то из вас это будет полезно. Не так давно появилась библиотека, которая позволит напрямую и эффективно вызывать Wolfram Language из языка Python.

Я, например, иногда использую вольфрам для символьных вычислений.

WolframClientForPython под лицензией MIT, так что вы можете использовать ее по своему усмотрению.

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

Читать статью
Комбинация значений

Мы уже кратко касались некоторых полезных функций в itertools. Теперь поговорим о функциях-итераторах, позволяющих комбинировать различные значения, меняя местами их составляющие. К их числу относятся такие методы как:

📌combinations;
📌combinations_with_replacement;
📌permutations;
📌product.

combinations

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

from itertools import combinations
data = list(combinations('DOG', 2))
print(data)

# Output: [('D', 'O'), ('D', 'G'), ('O', 'G')]


Как видно из кода, метод получает строку DOG, которая впоследствии раскладывается на отдельные символы. Далее происходит группировка по 2 буквы так, чтобы каждая новая выборка отличалась от всех существующих. Функция print выводит полученный список data на экран, отображая все сформированные пары символов D, O, G.

combinations_with_replacement

Более продвинутая вариация предыдущего итератора предоставляет программе возможность делать выборку из отдельных элементов с учетом их порядка. В следующем образце кода показано использование combinations_with_replacement с уже известными аргументами.

from itertools import combinations_with_replacement
for i in combinations_with_replacement('DOG', 2):
print(''.join(i))

# Output:
DD
DO
DG
OO
OG
GG


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

permutations

Работа функции permutations модуля itertools в Python похожа на комбинацию со сменой порядка. Однако в ней не допускается размещение идентичных элементов в одной группе. Ниже приведен код, демонстрирующий поведение и результат выполнения этого метода в цикле for.

from itertools import permutations
for i in permutations('DOG', 2):
print(''.join(i))

# Output:
DO
DG
OD
OG
GD
GO


На выходе программа отображает несколько пар значений, так как в качестве второго аргумента функция получила 2. Важно заметить, что каждая новая выборка отличается от всех предыдущих только порядком, а общая последовательность может включать в себя группы, состоящие из одних и тех же значений, просто сменивших расположение.

product

Последний из комбинационных итераторов получает в качестве параметра массив данных, состоящий из нескольких групп значений. Функция product библиотеки itertools в Python 3 позволяет получить из введенной последовательности чисел или символов новую совокупность групп во всех возможных вариациях. Следующий пример показывает исполнение этого метода.

from itertools import product
data = list(product((0, 1), (2, 3)))
print(data)

# Output: [(0, 2), (0, 3), (1, 2), (1, 3)]


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

#itertools #combinations
Мой коллега написал бота, который отправляет котиков и собачек. Советую ознакомиться с ним, поскольку даже в таком простейшем боте есть интересные вещи, например админская панель, позволяющая делать масс-рассылки. К тому же, код заботливо выложен на гитхаб.

Кстати, это только первая часть нашего с ним общего проекта. Но об этом уже немного позже.
Forwarded from Dank Code
Вероятнее всего, многие уже видели моего нового бота @DailyAnimalsBot, но всё же скидываю и сюда. Правда он умеет только отправлять котиков и собачек, но я также вкрутил туда несколько приколюх типа поддержка инлайн режима, смена языка и еще кое-что.

Весь код выложил в открытый доступ, можете посмотреть и поставить звездочку на гитхабе :)

P. S. Это не реклама, это просто мой небольшой проект.
Новая рубрика

Недавно подписчица прислала мне код, и попросила опубликовать. И я тут подумал, что вообще говоря давно хотел создать новую рубрику с вашими работами.

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

Вот гитхаб с кодом:
Посмотреть код

Обратите внимание, код написан специально под windows

Да, теперь свои работы вы можете прислать мне, и я опубликую самое интересное.
Начинаем возвращать актив

Давно не было постов, и актив упал. Я занимался не пойми чем, чаще конечно просто работал, или занимался физикой (я обычно использую питон для анализа данных численных расчетов взаимодействия лазера с плазмой). Отмечу, мне ужасно надоели сухие посты, которые я обычно писал до этого. Да и времени это отнимало прилично, необходимо было найти нужную тему, изучить ее. Поэтому я решил попробовать написать что-нибудь от себя.

На днях я тут обдумывал вот что. Программирование для меня по большей части это удобный инструмент. Чаще всего сейчас уже не хочется ковыряться в кишках кодинга, чтобы понять какие-либо скрытые механизмы, не столь важные для работы в данный момент. Да и по большей части уже многое сделано, и не требуется написания чего-либо с нуля. Например, сейчас уже не нужно придумывать и писать с нуля свой движок для игры, как лет 15-20 назад. Достаточно взять готовое решение и можно начинать творить. Программирование по сути стало доступно простым людям (читай не специалистам).

Что касается data science, тоже все идет в сторону того, что люди создают удобные либы, из которых например можно в несколько строчек написать код для распознавания лиц. Ну или как тут (советую потестить).

Недавно открыл для себя крутую штуку. Ее кстати можно использовать не только в jupyter (я вообще его не использую, чаще всего нужно подключаться к кластеру с данными и запускать скрипты сразу на нем же, прямо в консоли), достаточно передать в tqdm итерируемый объект.

#мысли
Создатель языка программирования Python уходит на пенсию

Спустя шесть с половиной лет, нидерландский программист и создатель языка программирования Python Гвидо ван Россум, покидает Dropbox и уходит в отставку. Компания объявила об этом 29 октября. Кстати, самые первые строки для Dropbox были написаны на Python.

Во время работы в Dropbox Гвидо сосредоточился на нескольких направлениях, в том числе помог отладить процесс тестирования и создать систему проверки типов для Python, получившую название mypy. Также он ответственен за создание более лёгкого в поддержке кода, который могут быстро разбирать новые разработчики. По его словам, когда он только пришёл в Dropbox, там разработчики использовали «умный» код (clever code), который понимали только они.

Для стартапа создание «умного» кода кажется правильным, но по мере роста и расширения команды разработки такое решение уже не подойдёт, пояснил ван Россум.

Гвидо ван Россум создал язык программирования Python в 1989 году, когда работал в Центре математики и информатики Амстердамского университета. В 2005 году он устроился на работу в Google, а в конце 2012 года перешёл в Dropbox.

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

Мы предлагаем:
-Работу в молодом коллективе профессионалов. Команда – одна из наших самых больших гордостей
-Вилку по заработной плате – 20-40 тыс (руб)
-Сложные, но интересные задачи, безграничные возможности для развития
-Отсутствие бюрократии и настоящий дух стартапа

Чем предстоит заниматься:
-Писать алгоритмы для обработки поисковых запросов
-Добавлять в сайт интеграции с другими сервисами, например, авторизация и регистрация через Telegram или работа с API Яндекс.Вордстат
-Деплой на сервера Ubuntu

Навыки:
-Хорошее знание Python 3.5+
-Желателен опыт работы с фреймворками Django
-Опыт работы с Linux & Docker, PostgreSQL или MySQL, REST API, git или bitbucket

Контактная информация:
Контактное лицо: Диана Александровна Шорох
Телефон 8 (969) 0660033
E-mail: verizhnikova.natalya@bk.ru
Matplotlib, pyplot и pylab: как они соотносятся?

Matplotlib по сути это целый пакет, тогда как matplotlib.pyplot это отдельный модуль в matplotlib.
Pylab это модуль, устанавливаемый отдельно от matplotlib.

Pyplot предоставляет state-machine интерфейс для базовой библиотеки объектно-ориентированных графиков. State machine неявно и автоматически создает фигуры и оси для достижения желаемого графика. Вот пример:


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2, 100)

plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')

plt.xlabel('x label')
plt.ylabel('y label')

plt.noscript("Simple Plot")

plt.legend()

plt.show()

#matplotlib
Не забываем, что у нас есть две неплохие статьи по matplotlib.

Читать первую часть про matplotlib

Читать вторую часть про matplotlib

Рекомендую ознакомиться, потому что скоро мы планируем провести небольшой бесплатный интенсив по Data Science (нам понадобится matplotlib), где в конце будет анонс нашего нового крутого проекта.

Об этом всем я также сообщу немного позже на этой неделе.

#datascience #matplotlib
Forwarded from Python Academy
Почему именно Python?

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

Читать 5 минут
Да чё это такое, а?

Возникал такой вопрос, когда видел термин Data Science?

Уверен, ты слышал, что это перспективное направление и там ну очень много денег, а конкурентов очень мало.

Дело не в сложности, а в том, что информации почти нет.

Поэтому самые быстрые успеют 4 дня кайфовать с бесплатной, но полезной информации.

Вступай, пока твоё место не заняли.