Ответы пользователя по тегу Python
  • За счёт чего NumPy массивы эфективнее питоновских списков?

    @dmshar
    Массивы в Numpy реализованы почти так-же как и в С++ . Главное отличие - это всегда непрерывный в оперативной памяти участок однотипных данных. За счет этих двух фундаментальных свойств и соответственно - отсутствия соответствующих проверок и преобразований, операции над элементами массивов Numpy выполняются ощутимо быстрее, чем над списками, особенно при больших объемах хранимой информации. Недостатком массивов в Numpy есть неэффективное использования оперативной памяти в случаях, если реальных элементов массиве меньше, чем задекларированный размер массива.
    Списки реализованы в виде несколько модифицированной ссылочной структуры С++. Точнее - память там выделяется блоками, доступ не прямо к элементу, а через систему ссылок и пр. Кроме того, списки это разнотипные элементы, более того - это возможно еще и списки списков или списки других составных типов данных. В общем, что-бы выполнить простую операцию, интерпретатору необходимо выполнить достаточно много проверок и переходов.
    В последних версиях реализация списков сильно оптимизирована. Тем не менее, операции с его элементами остаются более медленными, чем над элементами массивов Numpy.
    Наличие "множества полезных и удобных функций" - это уже производное от базовых отличий.
    Ответ написан
  • Какая часть математики нyжна для изyчения глyбокое обyчения?

    @dmshar
    И что, вы выберете эти разделы и кинетесь именно их учить?
    Ну вот вам ответили в соседнем ответе. И что? Только вот что-бы выучить ту же теорию оптимизации надо знать и классическую вышку, и линейную алгебру и много чего еще чего.
    Математика - эта такая наука, которая не терпит растягивания на кусочки. Уж точно - на уровне школьной программы или программы инженерного универа.
    Ответ написан
    Комментировать
  • Все темы python?

    @dmshar
    Нескромный вопрос - а зачем вам? Думаю, люди программирующие на Python по 5+ лет никогда все его темы, "прям полный от начала до конца" никогда не то что не пользовали, но даже не изучали
    Ответ написан
  • Как дальше продвигаться новичку в питоне?

    @dmshar
    Я обычно объясню необходимость изучения алгоритмов примерно так.
    Представте, вы учитесь играть на музыкальном инструменте и хотите стать музыкантом.
    Не тем, который "три аккорда - любая мелодия" а настоящим, классным исполнителем неважно чего - хоть Битлз, хоть Бетховена, хоть Моцарта - но именно классным.
    Ежу понятно, как идти к этой цели.
    - Сначала играем гаммы. Долго, упорно. до автоматизма.
    - Потом играем этюды. Да это скучновато, да это точно не Битлз, да мелодия не ахти -но там есть тысячи пассажей и приемов, от простых к сложным. Вот их мы осваиваем, постепенно, повышая свое мастерство. Шаг за шагом, с каждым этюдом или с каждой адаптированной для новичков мелодией приобретаем навыки игры все более и более сложных "комбинаций нот".
    - И только потом учимся играть "настоящую" музыку.
    Попытки перескочить этот естественный путь развития приедет к тому, что "для себя" вы играть может быть и научитесь, но вот слушать вас толпы зрителей - вряд-ли согласятся добровольно.
    Ничего не напоминает?

    Гаммы -- синтаксис языка программирования и простейшие задачи из учебников. Даже если в этих учебниках есть примеры "как бы сложных" проектов - игр, решалок и пр. - это все равно с точки зрения профессионала не более, чем гаммы. И научившись этому кодировщиком вы станете, а вот алгоритмическое мышление развить - врят-ли.

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

    Конечно, изложение выше - это некое упрощение, можно сказать краткое объяснение на пальцах для новичков. Но суть от этого не меняется. И алгоритмы - есть обязательное (одно из многих других, кстати!) условие превращения "кодировщика" в "разработчика", даже если этот разработчик никогда сам в жизни не будет писать алгоритм сортировки или обхода графа.
    Вот как-то так.
    Ответ написан
    1 комментарий
  • Как удалить повторяющиеся строки в df, кроме одной с максимальным значением?

    @dmshar
    df.drop_duplicates(subset=['Описание','Артикул'], keep="last")

    Out[132]:
    Описание Цена Артикул
    1 бочка 300 1
    3 стол 450 4
    Ответ написан
  • Чем pandas отличается по возможностям от MS Excel,MS Access, SQL?

    @dmshar
    Pandas - инструмент программирования, даются возможности, делай что хочешь. MS Excel,MS Access - закрытые инструменты: что дали тем и пользуйся. Шаг вправо, шаг влево - и сполошной головняк. Попробуйте на EXCEL реализовать какой-нибудь простенький метод типа WMW или ARIMA- замаетесь. Я уж не говорю, если что-то надо считать в режиме он-лайн. А табличку простенькую (и не очень) - конечно, проще вести на EXCEL. SQL - вообще доступ к БД и больше по сути ничего.
    Так что каждый овощ - в свой салат. А для каждой задачи - свой инструмент.
    Ответ написан
    Комментировать
  • Как распознать кириллический экранный текст на изображении?

    @dmshar
    Берете в качестве примера обучение сети некирилическому тексту (скорее всего, вам будет доступен английский), разбираетесь и сами (если уж хочется самостоятельности) по аналогии делаете распознавание кириллицы.
    А то, что качество не радует - ну так сравните, на скольких РАЗМЕЧЕННЫХ примерах обучались английские распознавалки и сколько вы им можете подсунуть за разумное время кириллических размеченных образцов.
    Ответ написан
  • Был курс, но не могу найти его снова, по питону и машин леарнинг?

    @dmshar
    Вот поэтому, суперточному описанию "то ли по нейросетям, то ли по машинному обучению на питоне...... используется библиотечка онлайн ...... есть какой-то датасет.... а оно тебе графики строит, предугадывает дальнейшее поведение и прочие прелести.......то ли от гугла, то-ли еще от кого-то известного...... Или может что еще посоветуете почитать. " .
    в сети не просто много, а почти все, что там есть.
    Надоело для ленивых каждый раз переписывать. Вот позавчера уже составлял для очередного страждущего знаний, там и литература и курсы:
    Литература или какие-нибудь курсы математики для машинного обучения?
    А по самой задаче - проблема в том, что у каждого из ваших конкурентов может быть своя особая модель, иногда в корне противоречащая другим. С помощью МL вы можете либо попытаться понять, у каких конкурентов подобные модели (задача кластеризации) либо для каждого из конкурентов (или их выделенных групп) составить их модель ценообразования. Впрочем смысл последнего действия более чем сомнителен.

    А графики посмотреть - так это вообще к МL никаким боком не относиться.
    В общем - пора наводить порядок в своих мыслях и от "поразмыслить" переходить к "исследовать"
    Ответ написан
  • С чего начать изучение анализа данных python?

    @dmshar
    Давайте с конца в начало.
    "Если самостоятельно, то с чего начать изучение?" - тут все понятно и однозначно. Если хотите учиться самостоятельно, то начинать надо, естественно с обучения самостоятельному поиску нужной информации в сети. Хотя-бы с помощью Гуугла. А затем - самостоятельному принятию решений.

    "стоит ли тратить такие большие деньги, или же лучше начать изучение самостоятельно" - вообще-то что бы стать специалистом, надо потратить очень много времени. Правило 1000 часов никто не отменял. Особенно в таком "мозгоёмком" направлении как Data Science. Вон люди ведут дискуссии на тему - необходим-ли уровень phD, что-бы считать себя специалистом по анализу данных, или достаточно магистерского уровня по профильной специальности. Поэтому обязательно включите в список рассматриваемых альтернатив "получение высшего образования". И возможно это должен быть первым вариантом. А уж если по каким-то причинам не получиться - то переходить к следующим.

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

    Ну и еще одно - хотите специализироваться в Аналитике данных (и в программировании, кстати, тоже) - не забудьте об английском.
    Ответ написан
    Комментировать
  • Почему не рисуется гистограмма?

    @dmshar
    Не знаю, вы же нам ничего не рассказали ни о себе, ни о IDE, которую используете, ни о версии Python, ни об ошибках/сообщениях, которые получаете. Может у вас seaborn не установлен, магическая команда %matplotlib не верно задана или вы вообще в консоле работаете.
    А ваш график - на рисунке (прямо скопировал ваш скрипт себе в редактор и запустил) 5e3fc88668671088080323.png
    Ответ написан
    7 комментариев
  • Как правильно спроектировать приложение по распознаванию лиц?

    @dmshar
    Мне очень понравился вопрос.
    Ну действительно. Человек только-только (месяц) как начал разбираться в машинном обучении (у других что-бы понять что к чему годы уходят) и хочет сразу же создать весьма нетривиальное приложение, потому что "проще учиться разбирая что-то сложное" (теоретически верно, при условии, что есть необходимая база знаний, упорство и умение самостоятельно учиться) . При этом - в общем-то не хочет разбираться что и как работает, но и взять готовую библиотеку и разобраться хотя-бы в ней - ни-ни, "что бы лучше самой понять". Весьма похвально, правда не совсем ясно, как это сделать без глубокого понимания предмета, то то такое.
    Однако при этом найти в интернете описания решения своей и подобной ей задачи (коих - описаний - в интернете пруд пруди, включая и библиотеки и "планы разработки" ) - тоже самостоятельно или не может или не хочет. И апофеоз - "а опишите мне тут на форуме, "что-то важное по теме", естественно желательно коротко и понятно.
    Занавес.
    Ответ написан
  • Распознавание образов с окна игры?

    @dmshar
    1. Если современные средства ИИ позволяют не то что монстров отслеживать, а куриц, перебегающих дорогу перед автомобилем объезжать, то ответ на вопрос "можно или нет отслеживать и манипулировать мышкой" - понятен и однозначен. Можно.
    2. Возможно реализовать на чем угодно, и на С# и на Python, и на Java и на GO и на Julia.

    Вот только рассчитывать на то, что вы это сделаете дома на коленке - что на Python, что на С - явно не стоит.
    Ответ написан
  • Как подать данные в нейронку?

    @dmshar
    Что вы не можете понять - как из списка в девять элементов сделать два списка по шесть и три?
    X_input = X[0:6]
    X_output = X[6:]
    Ответ написан
    Комментировать
  • Нужно ли высшее образование для получения работы в data science или достаточно самообразования с помощью он-лайн курсов и книг?

    @dmshar
    Все зависит, от чего вы отталкиваетесь. Если есть хорошая (не средняя, а именно хорошая и грубокая) подготовка по вышке в хорощем техническом вузе, желательно на ИТ-специальности - тогда начать осваивать DS можно и самому. Вопрос - хватит-ли у вас времени и усердия. Потому как в отличии от изучения тех-же языков программирования тут за пару месяцев - точно не управитесь.
    Ответ написан
  • Обучение Data Science?

    @dmshar
    1. Сколько времени в день уделять линейной алгебре и как ее изучать самостоятельно?

    Не важно, сколько времени уделять, важно - понимать (не запоминать конкретные факты, а именно понимать "что и почему").
    Вот мнение (одно из многих) о том, что надо из математики:
    https://habr.com/ru/post/432670/

    Занимаюсь по Лутцу и решаю задачи на codewars и hackerrank. Достаточно ли этого?

    Более чем. Но на самом деле, для Data Science понадобятся ОСНОВЫ Python плюс соответствующие библиотеки, в первую очередь Numpy, Matplotlib, Scipy, Pandas. Первую надо понять(!) до перехода к практическим задачам, последние три, а также Scikit-Learn и Tensorflow можно разбирать параллельно с собственно Data Science (точнее с Мachine Learning, потому что, например Data Engineering - это вообще отдельная тема).
    Но! Надо понять, что Мachine Learning - это не программирование на Python (или любом другом языке программирования). Это отдельная наука. А все, что перечислено выше - только легкая "подводка" к теме.
    Ответ написан
    Комментировать
  • Как загрузить csv датасет?

    @dmshar
    Да ну! Работаешь на Python и не можешь файл загрузить????
    Бросай ты это дело: рукописные буквы, нейросеть, tensorflow всякие.
    Нельзя учить атомную физику не выучив таблицу умножения. Или спорить будешь? Так почему ты решил, что сможешь работать с нейросетями не научившись элементарно программировать? А то боюсь, следующим вопросом будет "как цикл написать".
    Да, и по ходу подтяни свои навыки поиска в Гуугл. Очень пригодится.
    Ответ написан
    Комментировать
  • Какие сайты посоветуете для преподавания?

    @dmshar
    Да какая разница? Хоть по скайпу, хоть в Team Viewer, хоть любая из площадок вебинаров. Поверьте, ваши ученики будут оценивать вашу квалификацию как программиста и ваш талант как преподавателя. До оценки системы средств преподавания они дойдут в последнюю очередь.
    Ответ написан
    Комментировать
  • Достаточно ли материалов KhanAcademy по математике чтоб было возможно учить MachineLearning?

    @dmshar
    Ну, задаем вопрос в Гуугл, получаем кучу исчерпывающих ответов, ознакамливаемся, принимаем к действию, начинаем изучать.
    https://habr.com/ru/company/plarium/blog/442772/
    https://habr.com/ru/post/432670/
    ai-news.ru/2018/12/vazhnye_aspekty_matematiki_v_na...
    https://www.datasciencecentral.com/profiles/blogs/...

    За одно решаем, достаточно-ли того что преподают на Khana, что-бы покрыть список рекомендованных разделов и тем.
    Удачи.
    Ответ написан
    Комментировать
  • Собеседник на нейросети или как собрать велосипед?

    @dmshar
    А может, если пока не умеете самостоятельно произвести Google-поиск, создавать чат бота рановато? Ведь даже имея какие-то подсказки, возникнут десятки вопросы, ответы на которые придется спрашивать у Гуугла? Или опять придете сюда?
    Ну ладно, вот первая десятка ответов, который дал поиск. Для пользователей с разным уровнем исходной подготовки. Он вам по каким-то причинам не подходит?
    https://serpstat.com/ru/blog/kak-sozdat-chat-bota/
    https://shcherbakovs.com/stepbystep-plan-to-create...
    https://habr.com/ru/post/311008/
    https://vc.ru/services/57488-14-servisov-dlya-sozd...
    https://ain.ua/2017/03/23/5-servisov-kotorye-pozvo...
    https://ru.wix.com/russianhtml/leader-ru?utm_sourc...
    https://neurohive.io/ru/tutorial/kak-sozdat-chat-b...
    https://proglib.io/p/chat-bots-intro/
    https://habr.com/ru/post/317732/
    https://habr.com/ru/post/340190/
    Ответ написан
  • Как построить модель, когда обучающая выборка состоит из ежеминутных показаний?

    @dmshar
    В вашей задачи скорее всего показатель качества каким-то образом зависит от изменений параметров процесса в течении предыдущего часа (а может - не только одного, но и нескольких предыдущих часов - т.н. системы с задержкой. А может - и еще замысловатее - зависимость есть и от значения показателя качества в некоторые предыдущие периоды). Например - не было-ли выбросов, не происходили ли циклические изменения и пр. Таких показателей процесса - много. От тривиальных - среднего, среднеквадратичного отклонения, до более сложных - формы функции распределения значений, энтропии, наличия тренда и его характеристик и пр. И скорее всего именно от каких-то из этих показателей и/или их сочетаний, а так-же от взаимных изменений показателей наблюдаемых вами временных рядов между собой каким-то образом зависит то значение показателя качества, которое вы получаете ежечасно. Вот собственно это вам и надо выяснить. Т.е. анализируем процесс за час (это ваши входные данные) - делаем предсказание качества (это выходной результат вашей модели). Ну, можно, конечно, тупа попытаться запихнуть в какую нибудь сетку все своим сырые данные (N*60 точек за час, где N-количество ваших датчиков), но думаю толку от этого будет мало. Поэтому, очевидно, первый этап, который вам придется пройти - Feature engineering, т.е. конструирования параметров, по которым потом вы и будете обучать свою модель.
    Вот как-то так.
    Ответ написан
    Комментировать