Задать вопрос
  • Что изучать дальше?

    Maksim_64
    @Maksim_64
    Data Analyst
    Начни и продолжай разрабатывать проект, постепенно увеличивая его сложность и улучшая его качество. Используй git. Многие навыки тяжело развить вне контекста проекта.
    Ответ написан
    Комментировать
  • Есть ли смысл учить школьную статистику и вероятность?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если все требования для теории вероятности в порядке, дискретная математика, для дискретных переменных, интегрирование, дифференцирование для непрерывных, алгебра для работы с выражениями, линейная алгебра, для работы с несколькими переменными, то какая еще школьная статистика и теория вероятности, сразу в бой, к взрослой теории вероятности с нее надо начинать, сначала изучаешь вероятностные модели, а потом, методы статистической оценки этих моделей.
    Ответ написан
    Комментировать
  • Какие задачи решают python + ai если говорить о решении задач за деньги в качестве сотрудника или на фрилансе?

    Maksim_64
    @Maksim_64
    Data Analyst
    Задачи? список где в бизнесе не применяется AI будет короче.

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

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

    ИИ за 24 часа, это всегда потеря времени. Развитие это своего рода, сложный процент + определенный шум. Что бы это работало, нужно основание больше 1 и время. Основание, это математика, и дело не в каких то формулах, а в определенном развитии мышления.
    Ответ написан
    3 комментария
  • Выбор специальности образования на магистратуре?

    Maksim_64
    @Maksim_64
    Data Analyst
    Сильно в будущем может повлиять специальность в будущем ?
    Отдохни, а потом займись чем нибудь таким за что заплатят деньги.
    Ответ написан
    Комментировать
  • От чего зависит время ответа модели?

    Maksim_64
    @Maksim_64
    Data Analyst
    время ответа по картинке 3-4 сек

    1. Если ты что то процессируешь по одному в еденицу времени, то CPU будет быстрее и значительно быстрее чем GPU. При этом если ты процессируешь кусками (batch), то GPU даст буст вплоть до 100 раз. Ты должен даже сформировать правильный размер (batch size), сколько картинок ты даешь за раз. Модель должна принимать массив, с представлениями картинок.

    2. В целом свой воркфлоу ты должен делить на CPU bounded, GPU bounded и I/0 (input/output). И оптимизировать, например чтение с диска картинок это I/O операции, которые требуют определенной оптимизации.

    По итогу. Сравнение по одной картинке смысла не имеет и на CPU будет быстрее. Сравнивать нужно пайплайн на большом количестве + если не оптимизировать I/O, то система может простаивать, ожидая выполнения медленной операции, например загрузка картинки.
    Ответ написан
  • Как создать паттерн для библиотеки re, в котором первая группа не будет повторяться, а вторая будет?

    Maksim_64
    @Maksim_64
    Data Analyst
    Честно сказать не совсем понял, что в итоге ты хочешь сделать. Предположу что объеденить числа и фрукты в одну группу и собрать все такие группы.
    taken = re.findall(r'([0-9]+\D+)', string=string)
    затем легко, удалить лишние символы даже обычным питоном.
    Ответ написан
  • Говорят,что не надо знать матем. при изучении программирования, но почему все задачи математические?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Способов изучать программирование множество, большинство не требуют чего то большего чем школьная программа.

    2. На работе математические требования зависят от области применения.

    Скорее всего при самостоятельном обучении, ты встал на путь, который требует математику.
    Ответ написан
    Комментировать
  • Как распарсить файл в табличной верстке через beatifulsoap?

    Maksim_64
    @Maksim_64
    Data Analyst
    У тебя всегда таблица в htnl используй подходящуюю структуру данных пандас датафрейм.

    import pandas as pd
    from io import StringIO  
    html = '''<!-- SW --><TABLE WIDTH=100%><TD CLASS=pt><A NAME="installed programs">Установленные программы</A><TR><TD><HR></TABLE><TABLE><TR><TD WIDTH=16>&nbsp;<TD WIDTH=16><TD><TD><TD><TD><TD><TD>
    <TR><TD><TD><TD><B>Программа</B>&nbsp;&nbsp;<TD CLASS=cr><B>Версия</B>&nbsp;&nbsp;<TD CLASS=cr><B>Размер</B>&nbsp;&nbsp;<TD><B>GUID</B>&nbsp;&nbsp;<TD><B>Издатель</B>&nbsp;&nbsp;<TD CLASS=cr><B>Дата</B>
    <TR><TD><TD><TD>64 Bit HP CIO Components Installer&nbsp;&nbsp;<TD CLASS=cr>16.2.1&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{F8F948EA-5AEA-4158-8821-A2F788ECE936}&nbsp;&nbsp;<TD>Hewlett-Packard&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>HP LaserJet Pro M201-M202&nbsp;&nbsp;<TD CLASS=cr>15.0.16064.399&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{e71f6d30-080d-43ef-87e0-1ac4d7f8adfa}&nbsp;&nbsp;<TD>Hewlett-Packard&nbsp;&nbsp;<TD CLASS=cr>
    <TR><TD><TD><TD>HP Unified IO&nbsp;&nbsp;<TD CLASS=cr>2.0.0.434&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{F1390872-2500-4408-A46C-CD16C960C661}&nbsp;&nbsp;<TD>HP&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>HP Update&nbsp;&nbsp;<TD CLASS=cr>5.005.002.002&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{912D30CF-F39E-4B31-AD9A-123C6B794EE2}&nbsp;&nbsp;<TD>Hewlett-Packard&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>Mesh Agent&nbsp;&nbsp;<TD CLASS=cr>2022-12-02 22:42:16.000+03:00&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>Mesh Agent&nbsp;&nbsp;<TD>&nbsp;&nbsp;<TD CLASS=cr>
    <TR><TD><TD><TD>Microsoft Edge&nbsp;&nbsp;<TD CLASS=cr>132.0.2957.115&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>Microsoft Edge&nbsp;&nbsp;<TD>Корпорация Майкрософт&nbsp;&nbsp;<TD CLASS=cr>2025-01-20
    <TR><TD><TD><TD>Microsoft Office LTSC профессиональный плюс 2021 - ru-ru&nbsp;&nbsp;<TD CLASS=cr>16.0.14332.20345&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>ProPlus2021Volume - ru-ru&nbsp;&nbsp;<TD>Microsoft Corporation&nbsp;&nbsp;<TD CLASS=cr>
    <TR><TD><TD><TD>Microsoft Update Health Tools&nbsp;&nbsp;<TD CLASS=cr>3.74.0.0&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{1FC1A6C2-576E-489A-9B4A-92D21F542136}&nbsp;&nbsp;<TD>Microsoft Corporation&nbsp;&nbsp;<TD CLASS=cr>2023-11-14
    <TR><TD><TD><TD>Mozilla Firefox (x64 ru)&nbsp;&nbsp;<TD CLASS=cr>134.0.1&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>Mozilla Firefox 134.0.1 (x64 ru)&nbsp;&nbsp;<TD>Mozilla&nbsp;&nbsp;<TD CLASS=cr>
    <TR><TD><TD><TD>Mozilla Maintenance Service&nbsp;&nbsp;<TD CLASS=cr>113.0.1&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>MozillaMaintenanceService&nbsp;&nbsp;<TD>Mozilla&nbsp;&nbsp;<TD CLASS=cr>
    <TR><TD><TD><TD>Office 16 Click-to-Run Extensibility Component&nbsp;&nbsp;<TD CLASS=cr>16.0.14332.20345&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{90160000-008C-0000-1000-0000000FF1CE}&nbsp;&nbsp;<TD>Microsoft Corporation&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>Office 16 Click-to-Run Licensing Component&nbsp;&nbsp;<TD CLASS=cr>16.0.14332.20345&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{90160000-007E-0000-1000-0000000FF1CE}&nbsp;&nbsp;<TD>Microsoft Corporation&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>Office 16 Click-to-Run Localization Component [Русский (Россия)]&nbsp;&nbsp;<TD CLASS=cr>16.0.14332.20281&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{90160000-008C-0419-1000-0000000FF1CE}&nbsp;&nbsp;<TD>Microsoft Corporation&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>STDU Viewer version 1.6.361.0&nbsp;&nbsp;<TD CLASS=cr>1.6.361.0&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>STDU Viewer_is1&nbsp;&nbsp;<TD>STDUtility&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>Update for x64-based Windows Systems (KB5001716)&nbsp;&nbsp;<TD CLASS=cr>8.94.0.0&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{DA80A019-4C3B-4DAA-ACA1-6937D7CAAF9E}&nbsp;&nbsp;<TD>Microsoft Corporation&nbsp;&nbsp;<TD CLASS=cr>2024-10-16
    <TR><TD><TD><TD>VixWin Platinum&nbsp;&nbsp;<TD CLASS=cr>3.50.000&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{81695582-88F8-47A6-8431-C10617AF058A}&nbsp;&nbsp;<TD>Gendex&nbsp;&nbsp;<TD CLASS=cr>2023-05-19
    <TR><TD><TD><TD>WinRAR 6.21 (64-разрядная)&nbsp;&nbsp;<TD CLASS=cr>6.21.0&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>WinRAR archiver&nbsp;&nbsp;<TD>win.rar GmbH&nbsp;&nbsp;<TD CLASS=cr>
    <TR><TD><TD><TD>КриптоПро CSP&nbsp;&nbsp;<TD CLASS=cr>5.0.12330&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{50F91F80-D397-437C-B0C8-62128DE3B55E}&nbsp;&nbsp;<TD>Компания КриптоПро&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>КриптоПро ЭЦП Browser plug-in [Русский (Россия)]&nbsp;&nbsp;<TD CLASS=cr>2.0.14816&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{E12CC7EE-36B7-4AAA-924E-2F5CD75BCECF}&nbsp;&nbsp;<TD>Компания КриптоПро&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>Платные услуги К1-1&nbsp;&nbsp;<TD CLASS=cr>0.1&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>{E59C5221-50B3-420C-84C0-DF40A1AC280E}&nbsp;&nbsp;<TD>Maximus&nbsp;&nbsp;<TD CLASS=cr>2023-05-18
    <TR><TD><TD><TD>Среда выполнения Microsoft Edge WebView2 Runtime&nbsp;&nbsp;<TD CLASS=cr>131.0.2903.146&nbsp;&nbsp;<TD CLASS=cr>Неизвестно&nbsp;&nbsp;<TD>Microsoft EdgeWebView&nbsp;&nbsp;<TD>Корпорация Майкрософт&nbsp;&nbsp;<TD CLASS=cr>2025-01-16
    </TABLE><BR><BR>
    '''
    table = pd.read_html(StringIO(html),header=[1])[0]
    print(table)


    Все задача решается в одну строчку кода table = pd.read_html(StringIO(html),header=[1])[0]затем выбираешь нужные тебе колонки, параметр header это с какой строки считать имя колонок, на другом примере его значение может, отличатся, по этому можешь его опустить, а выяснить нужные локации колонок, уже после.
    Ответ написан
    3 комментария
  • Какие ошибки в понимании объектов?

    Maksim_64
    @Maksim_64
    Data Analyst
    (3).__class__- здесь объект создался, затем ты обращаешься к его атрибуту.

    3.__class__ - здесь при его создании произошла ошибка (если быть точным даже на стадии парсинга ошибка), питон пытается спарсить, как float, и у него естественно не получается.
    Ответ написан
    Комментировать
  • Как устроиться на работу Data Engineer?

    Maksim_64
    @Maksim_64
    Data Analyst
    Откликайся на все что связанно с данными, не нужно пытаться зайти именно в data engineer. В большинстве компаний которые работают с данными нет такой позиции.
    Ответ написан
    2 комментария
  • Как сделать содержание в markdown с символом № в тексте?

    Maksim_64
    @Maksim_64
    Data Analyst
    Оно и не должно работать, то что в круглых скобках должно совпадать с именем хеадера, на который ты переходишь только вместо пробелов знак '-'. То есть вот так
    ### Содержание
    1. [Начальное состояние](#Начальное-состояние)
    2. [Шаг №1](#Шаг-№1)
    3. [Шаг №2](#Шаг-№2)
    4. [Шаг №3](#Шаг-№3)
    Ответ написан
  • Чем теперь пользоваться, когда Хабр Фриланс закрылся?

    Maksim_64
    @Maksim_64
    Data Analyst
    Делай хорошее, привлекательное резюме, и размещай его на сайтах поиска работы, пока и они еще не умерли.
    Ответ написан
    8 комментариев
  • Почему self интерпретируется как None в ходе инициализации __init__?

    Maksim_64
    @Maksim_64
    Data Analyst
    Не очень понятно, у тебя есть описание метода __str__, строковое представление объекта, в котором ты описал его логику (в зависимости от значения атрибутов объекта), затем, ты вызываешь print, который автоматически вызывает __str__ и там происходит ровно то что ты описал, то есть print(экземпляр класса) выведет ровно то, что возвращает __str__, если он был определен, если нет то стандартно ссылку в памяти на объект экземпляра.
    Ответ написан
    Комментировать
  • Нужно ли ехать в Москву из региона если устраиваешься удаленно программистом?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я так работаю, живу в регионе, а работаю удаленно, мой текущий трудовой договор подписан электронной подписью. Если интересен процесс то вот несколько пунктов.

    1. Получение ЭЦП в удостоверяющем центре, стоит не дорого.

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

    3. У тебя появляется аккаунт в системе электронного документооборота например в СБИС.

    4. Заходишь в свой аккаунт, либо загружаешь туда электронную версию ТК либо тебе туда ее и присылают, внимательно читаешь, если что жмешь утвердить и отсылаешь обратно, работодателю.

    Все, ты официально трудоустроен, и ТК подписанный ЭЦП ни чем не отличается, от ТК подписанного в офисе.
    Ответ написан
    9 комментариев
  • Можно ли через numpy или pandas удалить строки в многомерном массиве, элементы которого содержат два и более разных значений?

    Maksim_64
    @Maksim_64
    Data Analyst
    Можно хоть в numpy, хоть в pandas. Учи что такое булевая маска. И как с ее помощью выбирать подсеты массива.
    array = np.array([
    ['петя', 'ваня', 'ира'],
    ["катя", 'саша', 'ира'],
    ['петя', 'миша', 'ира'],
    ['петя', 'миша','саша'],
    ])
    
    cond1 = np.any((array == 'петя'), axis=1)
    cond2 = np.any((array == 'ира'), axis=1)
    comb = cond1 & cond2
    array[~comb]


    Сейчас перечитал вопрос и смотрю, в оглавлении вопроса ты одно спрашиваешь а в самом вопросе другое.
    удалить строки в многомерном массиве, элементы которого содержат два и более разных значений
    это означит оставить строки только с одинаковыми значениями. изпользуй np.unique()

    unique_per_row = np.array([len(np.unique(row)) for row in array])
    array[unique_per_row == 1]
    Ответ написан
    3 комментария
  • Чем автоматизировать некоторые задачи обработки фото с распознаванием местоположение лица?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если скорость не важна не надо миллионы в сутки обрабатывать то вот этот проект https://pypi.org/project/deepface/

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

    Если их надо миллионы в день процессировать то тогда надо напрямую с нейронкой работать и запускать на GPU RetinaFace будет хорошим выбором.

    В библиотеке которую предложил собраны много моделей для определения области где расположено лицо, а также создания эмбеддингов, для последующего распознавания.
    Ответ написан
    Комментировать
  • Выдаёт ошибку: cannot access local variable 'status1' where it is not associated with a value. Что делать?

    Maksim_64
    @Maksim_64
    Data Analyst
    твои if elif не покрывают всех условий. Либо добавь else и там чему равен status1, когда все вышеперечисленные условия False. Или проверяй status там не то что ожидаешь. Может например там строка, а ты проверяешь на соответствие числу, может еще что-то.
    Ответ написан
    1 комментарий
  • Какая функция потерь наиболее подходит для колоризации изображения?

    Maksim_64
    @Maksim_64
    Data Analyst
    Собственно и сам вопрос, как быть?

    Например читать, научные статьи прям на эту тему.
    https://arxiv.org/abs/2204.02980v3
    справа в верхнем, доступные форматы документа. Если с английским тяжело, дай условному чату GPT подходящую часть. Пусть переведет.
    Ответ написан
    Комментировать
  • Как быть с тестовыми заданиями при трудоустройстве?

    Maksim_64
    @Maksim_64
    Data Analyst
    Был фидбек, не был фидбек, не нужно воспринимать все это на свой счет. Больше, активности. Представь себе, следующую ситуацию, баскетбол. Тебе нужно забить три трех очковых подряд, это не просто. Чем больше попыток, зайти на страйк, тем больше шансы. Рецепт один, больше откликаться, выполнять тестовые задания, пытаться удивить в тестовых заданиях и т.д.

    Твоя цель - оффер, и все посторонние мысли о справедливости, какая компания, какое тестовое и т.д. Они только отвлекают и мешают.
    Ответ написан
    Комментировать
  • Как можно разбить строку на слова по всем символам?

    Maksim_64
    @Maksim_64
    Data Analyst
    используй регулярные выражения.
    что-то вроде этого.
    re.findall(r"\b\w+\b", string)
    можно и re.split использовать, при желании.
    Ответ написан
    1 комментарий