Задать вопрос
  • Как ускорить перемножение матриц в numpy?

    adugin
    @adugin Куратор тега Python
    Не нужно этого делать.

    Во-первых, следует учитывать важность row-major и column-major order в этой операции:
    5da1a98421c64984085602.png

    Во-вторых, переход от int32 к float32 (или float64) даёт радикальное ускорение за счёт BLAS:
    5da1c7d110982244427246.png

    BLAS уже используется в numpy "под капотом" (по крайней мере, в дистрибутиве Anaconda), поэтому не следует явным образом вызывать эти функции вручную - как показано выше, это будет медленее.

    5da1bf09df2f7466403215.png
    P.S. Теория вкратце:
    Performance Tips of NumPy ndarray
    Understanding the internals of NumPy to avoid unne...
    Ответ написан
    Комментировать
  • ИИ, Нейронные сети, ML – для школьника?

    @AlexSku
    не буду отвечать из-за модератора
    Вчера был вебинар по Матлабу (со 2-ой минуты рассказано о разных подходах).
    Ответ написан
    Комментировать
  • Как преобразовать картинку в числа?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    from PIL import Image
    
    img = Image.open('pic.png')
    pixels = list(img.getdata())
    result = []
    for pix in pixels:
        r, g, b = pix
        result.append(r * g * b)
    print(result)
    Ответ написан
    Комментировать
  • Case in в Python нет?

    solotony
    @solotony
    покоряю пик Балмера
    вместо case используется либо последовательность if либо словарь
    Ответ написан
    Комментировать
  • Какая область математики отвечает за подсчет количества возможных вариантов (пример)?

    Ocelot
    @Ocelot
    Комбинаторика.
    Ответ написан
    Комментировать
  • Конфликт локальных/глобальных переменных в Python: кто из нас прав?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Марк Лутц - "Изучаем Python", глава 20, страница 596
    Как известно, имена, которым выполняется присваивание внутри функции, по умолчанию рассматриваются как локальные – они располагаются в области видимости функции и существуют только во время работы функции. Но я еще не говорил, что локальные переменные определяются статически, во время компиляции программного кода в инструкции def, а не в соответствии с операциями присваивания, производимыми во время выполнения. Эта особенность становится причиной появления самых причудливых сообщений в группе новостей, получаемых от начинающих программистов. Обычно, если внутри функции имени не присваивается какое-либо значение, поиск его будет производиться в области видимости объемлющего модуля. Но посмотрите, что произойдет, если добавить инструкцию присваивания переменной X после ее использования.

    X = 99
    >>> def selector():
    ... print(X) # Переменная еще не существует!
    ... X = 88 # X классифицируется как локальная переменная
    ... # То же самое происходит при “import X”, “def X”...
    >>> selector()
    Traceback (most recent call last):
    ...текст сообщения об ошибке опущен...
    UnboundLocalError: local variable ‘X’ referenced before assignment

    Было получено сообщение о том, что переменная не определена, но причина его появления не очевидна. Этот программный код компилируется интерпретатором во время ввода в интерактивной оболочке или во время импорта модуля. Вовремя компиляции Python обнаруживает операцию присваивания переменной X и делает вывод, что X – это локальное имя везде в теле функции. Но во время выполнения функции, из-за того, что к моменту вызова инструкции print операция присваивания еще не производилась, интерпретатор сообщает о том, что имя не определено. Согласно этому правилу использования имен, он говорит, что обращение к локальной переменной X произведено до того, как ей было присвоено значение. Фактически любая операция присваивания внутри функции создает локальное имя. Операция импортирования, =, вложенные инструкции def, вложенные определения классов и так далее – все трактуются именно таким образом. Проблема возникает из-за того, что операция присваивания делает имена локальными для всей функции, а не только для той ее части, которая следует за инструкцией присваивания.

    Читать учебники - полезно.
    Ответ написан
    3 комментария
  • Как подсчитывать объем папки в реальном времени?

    @pfg21
    ex-турист
    подключиться к inotify. но нему прокидывают все изменения в файловой системе.
    фильтровать поток по необходимым путям и действиям и далее перечитывать статус измененных файлов.
    получишь размер каталогов прям в онлайн.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы хэши md5 совпадали у python и js?

    Строка должна быть также в utf8. Извините за говно код, но вот пример
    const md5 = require("pure-md5")
    const utf8 = require('utf8');
    console.log(md5.md5(utf8.encode("Привет")))
    Ответ написан
    Комментировать
  • Стоит ли писать собственное IDE на Python?

    @towin
    Если программированием занимаетесь только месяц, то нужно писать свою операционную систему.
    Своя IDE - это для тех, кто уже 2 месяца программирует.
    Ответ написан
    Комментировать
  • Как написать нейросеть на Python?

    netpastor
    @netpastor
    Python developer
    scale_1200
    Ответ написан
    Комментировать
  • На каких интернет-ресурсах новичку можно разместить исходники для code review?

    ri_gilfanov
    @ri_gilfanov
    Web- and desktop-developer
    1. Регистрируешься на github.com;

    2. Создаёшь репозиторий;

    3. Устанавливаешь себе на машину Git;

    4. Настраиваешь Git:
    git config --global user.name "Твоё имя латинницей"
    git config --global user.email твой_email

    5. Клонируешь репозиторий с GitHub в какую-нибудь папку:
    git clone https://ссылка_на_репозиторий.git

    6. Переносишь исходники в созданную git`ом папку (в ней ещё лежит файл .gitignore и папка .git).

    7. Внутри папки с исходниками выполняешь последовательность команд:
    git add --all
    git commit -m 'update'
    git push origin master

    8. Проверяешь, что исходники появились в репозитории на GitHub.

    9. Делишься ссылкой на репозиторий с желающими почитать твой код.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Какой-то конкретной цели, объясняющей для чего мне это надо, пока что нет.

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

    Льюис Кэрролл
    Ответ написан
    1 комментарий
  • Почему не могу сконвертировать py в exe?

    Oxyd
    @Oxyd
    Linux enthusiast
    Вы, наверное, набирали код в кодировке Windows-1251? Попробуйте тот-же код набрать в UTF-8 и всё у вас получится.
    Ответ написан
    4 комментария
  • Есть способ быстро сравнить одно изображение со множеством других изображений?

    netpastor
    @netpastor
    Python developer
    Самая дорогая операция тут - это Image.open(file_to_compare).histogram()
    Для каждой загружаемой картинки высчитывай хеш и храни в базе, чтобы потом не пересчитывать дважды
    Ответ написан
    Комментировать
  • Интересный вопрос от Я! Как решить проблему неправильных монет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Предположим, что мы бросили n-1 монет и получили какое-то количество единиц (орлов). Бросаем следующую монету (n). Если выпадет ноль (решка), то количество единиц не изменится, и чётность останется той же. Если выпадет единица, то чётность изменится.
    Poddn = Poddn-1*P0n + Pevenn-1*P1n
    Pevenn = Pevenn-1*P0n + Poddn-1*P1n
    Но, поскольку события Pevenn и Poddn образуют полный набор вариантов (либо чёт, либо нечет), то Pevenn + Poddn = 1.
    Аналогично, P0n + P1n = 1.
    Отсюда, Poddn = Poddn-1*(1-P1n) + (1-Poddn-1)*P1n
    var Podd = 0;
    var Peven = 1;
    for (var i = 1; i <= 100; i++) {
      P1 = 1 / (2 * i + 1);
    //  P0 = 1 - P1;
    //  Po = Podd * P0 + Peven * P1;
    //  Peven = Podd * P1 + Peven * P0;
    //  Podd = Po;
    // Всё, что выше, ужимается в
      Podd = Podd * (1 - P1) + (1 - Podd) * P1;
    }
    console.log(Podd);
    // 0.49751243781094556
    Ответ написан
    3 комментария
  • Какой язык и библиотеку использовать для работы с изображениями?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    Какой язык

    Любой

    Какую библиотеку использовать для работы с изображениями?

    Imagemagick
    Ответ написан
    Комментировать
  • Почему функция возвращает None?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Вы ничего не возвращаете из inputs. Можно сказать, что возвращаете ничего. То есть None.
    Ответ написан
    1 комментарий
  • Как определить число объектов в директории (файлов и папок)?

    hint000
    @hint000
    у админа три руки
    есть ли встроенные средства в Linux

    Если нужно количество объектов непосредственно в указанной директории, то
    ls -l -A /home | wc -l
    Если нужно количество объектов вместе с рекурсивно вложенными в поддиректориях, то
    find /home | wc -l
    В обоих случаях имя целевой директории для примера взято /home
    Ну и результат плюс-минус один-два, :) лень было учитывать заголовки. Если актуально количество с точностью до единицы, то поправите.
    Ответ написан
    Комментировать
  • Глянцевая поверхность, заготовка для фотошоп?

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

    Если вы работаете с моделями мебели, сделанными в трехмерных редакторах, то вот там есть заготовки различных материалов. А если вам приходится ретушировать фотографии и вы с вопросом не знакомы, то для качественного результата легкого пути нет. Я бы сказал, что его нет даже для "тяп-ляп" результата. Изучайте, собственно, ретушь и техдизайн.
    Ответ написан
    3 комментария