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
Не забываем, что у нас есть две неплохие статьи по matplotlib.

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

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

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

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

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

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

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

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

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

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

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

Вступай, пока твоё место не заняли.
Без лишних слов, сразу к делу. Сейчас я покажу сразу несколько интересных примеров из математики, и их возможные реализации на Python.

Первый интересный факт: замечали ли вы, что сумма некоторого ряда нечетных чисел есть количество слагаемых суммы в квадрате?

Пример:
1 + 3 = 4 = 2^2
1 + 3 + 5 = 9 = 3^2
1 + 3 + 5 + 7 = 16 = 4^2

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

def odds(n: int) -> int:
  for item in range(n):
    yield 2*item+1

def squares(n: int) -> int:
  return sum(odds(n))

Кстати, если вспомнить про интересную конструкцию yield from, то первую функцию можно записать вообще в одну строчку:

def odds(n: int) -> int:
  yield from [2*item+1 for item in range(n)]

>>> squares(3)
9

Работает!

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

Пример:

N = -log2(log2(sqrt(sqrt(sqrt(...(sqrt(2))))))
Общее число корней должно равняться числу N

3 = -log2(log2(sqrt(sqrt(sqrt(2)))))

>>> -log2(log2(sqrt(sqrt(sqrt(2)))))
2.9999999999999996

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

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

P.S. не забудьте импортировать log2 и sqrt из модуля math
Подчеркивание в Python

Знак подчеркивания _ или underscore занимает особое место в Python.

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

Ниже будет несколько примеров.

Змеиный регистр

Это конвенция именования переменных и функций в Python: название начинается с маленькой буквы, а слова разделяют знаком подчеркивания. Думаю все и так знают:

foo_bar = 10
def my_function_to_do_something_special(arg_1, arg_2):
...

А так писать не принято:

carSpeed = 60
Dont_Do_Like_This()

Магические имена

Имена магических методов и магических переменных начинаются и заканчиваются в двух знаком подчеркивания (__init__). Вот, например, так:

class CrazyNumber:
slots = ('n',)
def __init__(self, n):
self.n = n
def __add__(self, other):
return self.n - other
def __sub__(self, other):
return self.n + other
def __str__(self):
return str(self.n)

Конфликт с ключевым словом

Если вам очень нужно назвать переменную, функцию или аргумент также как и какое-либо ключевое слово из Python, то принято в конце ставить знак подчеркивания, дабы избежать конфликта.
Бывает актуально, если вы пишите какой-то биндинг к сторонней библиотеке, где, к несчастью, некоторые понятия имеют такое же имя как и ключевые слова:

Tkinter.Toplevel(master, class_='ClassName')

Но! Если вы пишите классовый метод, принято первый аргумент называть cls, а не class_.
​​Regression vs Classification

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

Давайте начнем наш разговор с обсуждения сходств этих двух методов.

Читать статью.

#datascience #regression #classification
Новогодний пост

Подведу итоги 2019 года.

Этот год был вполне плодотворным. Мы с Адрианом создали обучающий канал @python_academy, который собираемся развивать в новом году.

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

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

Вообще на мой взгляд рынок IT в телеге немного сдох, остались только несколько нормальных каналов, которые переливают своих подписчиков туда и сюда, и все. Что с этим всем делать я еще не решил... Пусть это останется в качестве главной интриги 2020 года)

Увидимся уже в новом году!

С наступающим!!!
То чувство, когда даже не знаешь хорошо это или плохо, что не купил грамы…

https://habr.com/ru/news/t/482984/

А вы что думаете? Взлетит эта криптовалюта или нет?
Forwarded from Python Academy
Чат-боты – это будущее Интернета?

В 2018 году объем мирового рынка чат-ботов достиг 1,27 миллиардов долларов. В 2019 он вырос до 2 миллиардов и будет продолжать расти на 30% в год. К 2023 году рынок ботов вырастет до 33 миллиардов рублей. Цифры заманчивые, но давайте разберемся во всем по порядку.

Читать 9 минут
Квантовые нейросети

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

Говоря о квантовой нейронной сети вводят понятие стохастического нейрона. Функция активации теперь рассматривается с вероятностной точки зрения.

Такой нейрон будет давать 1 с вероятностью, определенной функцией активации P(v) и 0 с вероятностью 1 - P(v).

Так и зачем это нужно?
В одной довольно старой статье было показано, что классический однослойный (без скрытых слоев) перцептрон (нейронная сеть, состоящая всего лишь из одного нейрона) не может решить задачу исключающего ИЛИ.

А вот аналогичный квантовый однослойный перцептрон уже может решить эту задачу.

Не говоря уже о том, что ближайший "органический" аналог подобной квантовой нейросети это... наш мозг.

#NN
Вывод значения по умолчанию для отсутствующего ключа словаря

При обращении к несуществующему ключу словаря Python выбрасывает исключение. Можно этого избежать, например вызывая метод get. В данном случае метод выдаст None (по умолчанию) либо заданное значение аргумента.

>>> d = {'a':1, 'b':2}
>>> d.get('c'))
None
>>> d.get('c', 3)
3

При создании собственного типа данных на основе словарей обратите внимание на метод __missing__ для возвращения аргумента при отсутствии ключа:

class MyDict(dict):
def __missing__(self, key):
return key
...
>>> D = MyDict(a=1, b=2)
>>> D
{'a': 1, 'b': 2}
>>> D['a']
1
>>> D['c']
c
Вчера как обычно занимался нейросетями, настраивал модель в keras (кстати, очень удобная штука, советую). Тренировал модель на датасете картинок с математическими символами, взятого из какого-то китайского репозитория на гитхабе. Точность была порядка 95%, вроде бы. Архитектуру сети взял с одной статьи с архива, прикрепляю ниже картинку, кому интересно.

Дальнейший шаг – это научиться с помощью cv2 разбивать картинку с несколькими символами на отдельные картинки, ну а дальше распознавать и парсить их.

Например даем картинку с надписью 1+1, пропускаем через нашу программу и получаем ответ 2.

Интересно? Рассказать об этом подробнее?

#keras #cv2
Hello World pinned «​Вчера как обычно занимался нейросетями, настраивал модель в keras (кстати, очень удобная штука, советую). Тренировал модель на датасете картинок с математическими символами, взятого из какого-то китайского репозитория на гитхабе. Точность была порядка 95%…»
Всякие разности

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

Концепция проста: низкая стоимость + высокое качество. Вообще мы давно уже занимаемся как ботами, так и data science. И вот недавно мы решили провести еще один поток обучения по ботам (возможно последний, ибо из-за обилия говнокурсов спрос сильно упал).

Так вот, если вам интересна тема телеграм ботов, то отпишите в бота @python_academy_robot (не пугайтесь что он на лайвграм, у нас полно нормальных проектов, и мы ничего не скрываем). Все цены будут там.

P.S. По поводу нейронок, если кому интересно, залил небольшой код конволюционной нейросети на github. Задача классическая, распознавание цифр из датасета MNIST. Постараюсь написать статью (либо серию постов) в ближайшее время.
Что выведет следующий код?
Anonymous Quiz
39%
SyntaxError
13%
01234
22%
01234end
25%
0234end
Проверка на анаграммность

Проверить, являются ли строки анаграммами (например, в результате случайной перестановки букв) поможет класс Counter модуля collections.

Посмотреть код

#string #collections
Запрос пароля во время выполнения программы

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

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

Посмотреть код

#tips