Недавно мне попалась классическая задачка для собеседований: поиск максимального числа точек, стоящих на прямой линии (на плоскости, координаты целочисленные). В голову сразу пришла идея полного перебора, которая имеет очевидную сложность по времени в O(n^2), но мне показалось, что здесь обязано быть что-то ещё, хоть какая-то альтернатива в O(n*log(n)). Через полчаса нашлось даже нечто лучшее!
Рубрика «python» - 114
ARA: алгоритм для нахождения максимального числа точек на прямой линии
2019-06-01 в 0:49, admin, рубрики: complexity, python, алгоритм, Алгоритмы, математика, собеседованиеМатематические неопределенности на примере Python
2019-05-31 в 15:18, admin, рубрики: iee754, javascript, python, математика, числаВсем привет! Мы очень часто пользуемся привычными числами в наших любимых языках программирования. Привычные это 1, -1.5, pi или даже комплексные. А вот NaN, +Inf, -Inf используется нами гораздо реже.
Примечание:
В статье я использую элементарные функции Python версии 3.6.8, но многое будет актуально и для других языков, например для JS.
Читать полностью »
Кастомизация Django ORM на примере ZomboDB
2019-05-30 в 19:21, admin, рубрики: django, elasticsearch, postgresq, postgresql, python, zombodbКастомизация Django ORM на примере ZomboDB
Часто при работе с Django и PostgreSQL возникает необходимость в дополнительных расширениях для базы данных. И если например с hstore или PostGIS (благодаря GeoDjango) всё достаточно удобно, то c более редкими расширениями — вроде pgRouting, ZomboDB и пр. — приходится либо писать на RawSQL, либо кастомизировать Django ORM. Чем я предлагаю, в данной статье, и заняться, используя в качестве примера ZomboDB и его getting started tutorial. И заодно рассмотрим как можно подключить ZomboDB к проекту на Django.
Полное интервью с деканом факультета Python в GeekBrains — как и для чего учить язык начинающим
2019-05-30 в 14:03, admin, рубрики: geekbrains, python, Блог компании Мой круг, интервью, Карьера в IT-индустрии, кем работать в ит, Мой круг
Вчера мы опубликовали первый выпуск в цикле «Кем работать в ИТ». Для него я поговорил с двумя бывшими студентами и деканом факультета Python в GeekBrains. Когда я «смонтировал» рассказы в одну историю, стало жалко, что многое осталось лежать в черновиках.
Поэтому сегодня выкладываю полную расшифровку интервью с Алексеем Петренко, деканом GeekBrains — почти без редактирования и вырывания из контекста. Возможно, оно будет даже более прикладным, полезным и сконцентрированным, чем основной выпуск.
Вот что, например, осталось за кадром: Почему Python не хуже других языков? Какие фреймворки стоит смотреть кроме Django? Где лучше учиться писать — в современной IDE или в блокноте? По каким сайтам и книгам стоит учиться самостоятельно и многое другое.
Читать полностью »
Асинхронная библиотека для работы с API Mikrotik
2019-05-29 в 14:07, admin, рубрики: asyncio, mikrotik, python, python 3.5, я пиарюсьКатегорически приветствую.
Недавно мне понадобилось поработать с Mikrotik через его API. Вроде бы ничего примечательного, есть официальная библиотека ,
есть еще на гитхабе обёртка, но вот беда — мне надо было работать асинхронно через asyncio и использованием плюшек async/await. И такой библиотеки я не нашел.
Читать полностью »
Говорят, выучить Python и стать программистом легко. Правда?
2019-05-29 в 13:01, admin, рубрики: geekbrains, python, Блог компании Мой круг, Карьера в IT-индустрии, кем работать в ит, Мой круг
Работать в ИТ — круто, но путь в индустрию может быть совсем не таким, как описывают родители или преподаватели в школе. На биржах труда ищут мобильных разработчиков, девопсов, бэкендеров и фронтендеров, но где эти профессии в списках специальностей классических вузов?
Мы запускаем цикл статей в которых подробно расскажем о каждой профессии через опыт людей. В первом выпуске обсуждаем Python-разработчиков. Свои истории рассказали Артем Сухаренко и Данила Лобанов. Они пришли в профессию совсем недавно, но успели набраться опыта в других сферах. А экспертом выступил Алексей Петренко — декан факультета Python в Geekbrains.
Мы поговорили о том, что нужно знать перед обучением, чем хорош и плох язык, что трудного ждет в обучении и на чем стоит сосредоточиться; какие профессии и деньги сулит знание языка, как готовиться к первым собеседованиям и многое другое.
Читать полностью »
Почему вам следует использовать pathlib
2019-05-28 в 21:41, admin, рубрики: pathlib, python, ПрограммированиеОт переводчика: Привет! Представляю вашему вниманию перевод статьи Why you should be using pathlib и её продолжения, No really, pathlib is great. Много внимания нынче уделяется таким новым возможностям Python, как asyncio, оператору :=, и опциональной типизации. При этом за радаром рискуют пройти не столь значительные (хотя, := назвать серьёзным нововведением язык не поворачивается), но весьма полезные нововведения в язык. В частности, на хабре статей, посвящённых сабжу, я не нашел (кроме одного абзаца тут), поэтому решил исправить ситуацию.
Когда я открыл для себя тогда еще новый модуль pathlib несколько лет назад, я по простоте душевной решил, что это всего лишь слегка неуклюжая объектно-ориентированная версия модуля os.path
. Я ошибался. pathlib
на самом деле чудесен!
В этой статье я попытаюсь вас влюбить в pathlib
. Я надеюсь, что эта статья вдохновит вас использовать pathlib
в любой ситуации, касающейся работы с файлами в Python.
Pythonhosted.org ошибочно заблокирован Роскомнадзором
2019-05-27 в 6:47, admin, рубрики: PyPi, python, блокировка сайтов, Законодательство в IT, РоскомнадзорПоводом для написания статьи послужило отсутствие упоминаний данного события в Рунете. Виной тому, предположительно, является несоблюдение провайдерами требования РКН, о котором пойдет речь ниже. Мне его удалось обнаружить только в корпоративной сети. Но нет никаких сомнений, что рано или поздно это коснётся всех.
Разбор и детали под катом. Читать полностью »
Перенос стиля
2019-05-26 в 11:51, admin, рубрики: python, машинное обучение, нейронные сети, перенос стиляПеренос стиля это процесс преобразования стиля исходного к стилю выбранного изображения и опирается на Сверточный тип сети (CNN), при этом заранее обученной, поэтому многое будет зависеть от выбора данной обученной сети. Благо такие сети есть и выбирать есть из чего, но здесь будет применяться VGG-16.
Для начала необходимо подключить необходимые библиотеки
import time
import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as F
from torch import optim
import torchvision
from torchvision import transforms
from io import BytesIO
from PIL import Image
from collections import OrderedDict
from google.colab import files
Автоматический импорт библиотек в IPython и Jupyter Notebook
2019-05-25 в 15:48, admin, рубрики: data mining, python, библиотеки, высокая производительность, закладки, искусственный интеллект, машинное обучениеВсем привет!
Сегодня мы разберем очень короткий, но полезный лайфхак о том, что нужно сделать, чтобы не вводить, к примеру, «import pandas as pd» по 10 раз в день.
Также не будем забывать, и автоматизировать и сокращать всё эффективно:
Для нашего лайфхака нужно:
- Перейти к ~/.ipython/profile_default;
- Создать папку с именем startup, если ее там еще нет;
- Добавить новый файл Python с именем start.py;
- Поместите ваш любимый импорт в этот файл;
- Запустить IPython или Jupyter Notebook, и ваши любимые библиотеки будут автоматически загружаться каждый раз!
Для наглядности, давайте всё визуализируем. Во-первых, местоположение start.py:
Здесь содержимое моего файла start.py:Читать полностью »