• Стоит ли уходить в Data Science?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Без сильного программирования делать будет нечего. Есть вакансии математиков там (иногда) программирование требуется но постольку поскольку. Именно в DS требования к программированию большие. Более того в последние годы наметилась тенденция под многими DS вакансиями, бизнес ожидает разработчика в области DS. No Code практики существуют (слабо распространены в России) упомянутый (Jupyter) не имеет к этому никакого отношения в нем надо точно также уметь кодить. Да и в целом No Code довольно редко встречается.

    2.
    Готов потратить год на изучение DS,
    Не реально. Я бы не советовал менять тебе профессию, а если хочешь в DS начни учится, и не на курсах а самостоятельно и начинать надо с программирования.

    3. По зарплатам расти можно довольно быстро да и на первой работе могут платить далеко не 60. Вопрос не в этом, до того как ты сможешь претендовать у тебя путь в несколько лет.
    Ответ написан
    3 комментария
  • Сквозная сортировка индексов DataFrame?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну с формулировкой вопроса ты подкачал, это переформатирование фрейма с элементами сортировки подсета данного фрейма. Вообще когда решаешь такую задачу, то индексы фрейма (колонки и индекс) будут тебе мешать, надо переводить подсет данных в numpy массив и там сортировать.

    Так или иначе, задачка простая, и решается в одну строчку кода, многими способами , например вот так
    df.loc[:,['A','B','C']] = np.sort(df[['A','B','C']].values,axis=1)

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Самые сложные тесты доступные онлайн которые, лично я проходил, да и сейчас иногда прохожу когда время позволяет это hakerrank Плюсом будет на собеседованиях (иностранных) прям тест с платформы могут дать.
    Ответ написан
    Комментировать
  • Как понять что группа событий полная?

    Maksim_64
    @Maksim_64
    Data Analyst
    Тег называется Теория Вероятностей. Что бы разрабатывать теорию, ты должен пойти на множество упрощений. По этому теория вероятностей и начинается с понятий Эксперимент, Выборка, Пространство событий и т.д. В теории не может быть все что угодно она должна развиваться, иметь возможности выявлять взаимоотношения, доказывать математически и т.д (Теория это собственный абстрактный мир).

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

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

    Финансовый рынок существует множество стратегий и т.д. Стратегия это сведение проблемы к математическому виду то есть моделирование, допустим оно генерирует положительную ожидаемую величину для определенного участника, но в какой то момент наступает событие не предусмотренное стратегией черный лебедь и практически обнуляет все плюсы стратегии, это как твой пример с монеткой упала ребром.
    Ответ написан
    Комментировать
  • В чём ошибка данных поиска href TypeError: 'NoneType' object is not subscriptable?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ответ в сообщении об ошибке и написан. Объекты типа None не имеют не ключей не индексов ты пытаешься обратится по ключу ['href'].
    вот это item.find(class_="link") не None по скольку он не ругается на метод find. А после вот этого .find('a') у тебя объект типа None.
    Ответ написан
  • Как оценить вероятность того, что среднее выборочное одного бета распределения больше среднего выборочного другого бета распределения?

    Maksim_64
    @Maksim_64
    Data Analyst
    Стандартная стратегия это получить распределение разностей, затем получить pdf этого распределения ну и подставлять интересующую разницу.

    https://stats.stackexchange.com/questions/436039/h...

    Здесь в первом ответе выведена точная формула pdf разностей бета распределений.
    Ответ написан
    Комментировать
  • Как найти первую стажировку или работу джуна по python?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не нужно искать стажировку.
    С учетом что у тебя нет коммерческого опыта (шансы работа) / (шансы стажировка) > 1

    2. При поиске работы не нужно откликаться только на вакансии без опыта, откликайся на все ну и что, что у тебя будет автоматических отказов > 99 процентов, есть еще 1. Некоторые вакансии предполагают выполнение тестовых заданий. В некоторых вакансиях написано требуется опыт при этом зарплата сильно ниже рынка. Твоя первая задача это научится хоть какой-то фидбек получать от потенциального работодателя, созвон хотя бы. Стремись попасть на собеседование даже если у тебя нет шансов его пройти.

    3. Говори что официально не работал, но есть не официальный опыт. Сделай порфолио, что бы было что показать в резюме.

    С таким подходом на каждые 200 откликов твоя ожидаемая величина 2-5 потенциальных фидбека, 0-2 собеседования. Дальше, как справишься. Подводя итог, когда некое событие маловероятно то лучший рецепт это активность. Не нужно самому добровольно себя обесценивать. Скорее всего рынок заплатит тебе мало, но это совершенно не одно и тоже, когда ты сам, себя обесцениваешь подходом дайте шанс, я почти ничего не умею, но научусь и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Возможно ли влиять на продуктивность программиста извне?

    Maksim_64
    @Maksim_64
    Data Analyst
    В целом работодатель должен стремится к долгосрочному сотрудничеству. Что бы его сотрудники однажды реализовали свой потенциал. А поиск супер продуктивных гениев, так про между прочим и то для тех кто может это себе позволить.

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

    Испытательный срок он обоюден. Когда у сотрудника есть мысли на заднем плане (а подходит ли мне вакансия, а оставят ли меня и т.д.) это серьезно снижает его продуктивность, как и другие факторы. На испытательном сроке оценивают потенциал, а не производительность.
    Ответ написан
    1 комментарий
  • Как выравнивать столбцы Pandas для красивого вывода в терминале?

    Maksim_64
    @Maksim_64
    Data Analyst
    С учетом того что в родном IDE все не ровно, то на ум приходит только следующая причина. Тип данных твоих колонок 'object' или 'string' и строки содержат пробелы в начале и в конце. В общим нужно применить метод strip (удалить лишние пробелы в начале и в конце строки).
    result = df.assign(**{
        'Системы:':lambda x:x['Системы:'].str.strip(),
        'Текущий %:':lambda x:x['Текущий %:'].str.strip(),
        'Плановый %:':lambda x:x['Плановый %:'].str.strip()
    })
    print(result)

    Если речь именно об этих данных что ты приложил в примере, то в моем python IDE они выглядят вот так
    65e0b054c7d7a530628786.png
    Как видишь вполне себе ровно, это без моего кода удаления пробелов. Так как в предоставленных тобой данных нет лишних пробелов.
    Ответ написан
  • Как сгруппировать строки в DF по условию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Профессиональных способов несколько например использовать resample метод. Это специализированный groupby для временной последовательности, второй это использовать groupby вместе с pd.Grouper. Приведу простенький пример.
    index = pd.date_range('1/1/2000', periods=9, freq='min')
    df= pd.DataFrame(data=np.random.randint(1,10,(9,2)), index=index, columns=['A','B'])
    df.resample('3min').agg({'A':'sum','B':'mean'})
    Я создал фрейм с индексом временная последовательность (1 мин). сгруппировал по 3минуты и применил к каждой из колонок разные аггрегирующие функции.

    Выбирать можно по любым временным интервалам. Почитай доки.
    Ответ написан
    1 комментарий
  • Почему при замене значения в DataFrame на pandas происходит ошибка, но значение меняется?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Это не ошибка, а предупреждение которому сто лет в обед, более того в зависимости от твоей версии pandas, ты можешь видеть не одно а сразу два предупреждения. В pandas давно уже целый раздел документации посвящен этому copy_on_write

    2. Детали про copy_on_write прочтешь в документации, там все расписано не хочу повторяться. Собираешься работать с pandas, ты должен знать что это такое.

    3. Правильный способ безопасно осуществить операцию, которую ты хочешь (что бы не было предупреждений и работало, как ты ожидаешь.
    pd.options.mode.copy_on_write = True
    info = {'color': ['blue', 'green', 'yellow', 'red', 'white'],
    'object': ['ball', 'pen', 'pencil', 'paper', 'mug'],
    'price': [1.2, 1.0, 0.6, 0.9, 1.7]}
    frame = pd.DataFrame(info)
    frame.loc[2,'price'] = 100 
    print(frame)

    Ну и обнови на всякий случай pandas по скольку copy_on_write будет по умолчанию установлен в True в будущих версиях.
    Ответ написан
    Комментировать
  • Можно ли обмануть программиста с проектной работой?

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Экономически вряд ли это целесообразно, слишком много средств потребует создание такой нейросети.
    Ответ написан
    Комментировать
  • Как получить данные колонки Pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну у тебя не много колонок, а всего одна. Элементы массива (имена колонок) идут через запятую. А все что ты заскринил, это одна строка, как следствие один элемент массива.

    Как пофиксить, ну я не знаю что у тебя там в файле, но предположу что у тебя в файле разделение на колонки происходит сивволом ';'. Как следствие тебе нужно указать параметром при чтении.
    df = df.read_csv(filename, sep=';') Ну и остальные параметры которые ты там указываешь. Решит ли это все проблемы неизвестны. Надо видеть в каком состоянии файл. Чтение файлов иногда может быть серьезной проблемой, которая потребует написания функций для проблемной части парсинга.
    Ответ написан
    1 комментарий
  • Как исправить ошибку invalid literal for int() with base 10: '0 из 90'?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ты пытаешься преобразовать строку в число. А именно где то ты вот эту строку пытаешься преобразовать в число '0 из 90', ожидая что там '90' ну или '0'. То есть в буквальном смысле у тебя где то в коде происходит. int('0 из 90') Что выдаст точно такую же ошибку. Отлаживай что бы там было строковое представление целого числа.
    Ответ написан
    Комментировать
  • Какой Roadmap для старта работы с AI?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Уверенный английский (качественные материалы и инструменты и т.д все на английском)

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

    3. Уверенный навык программирования. Реализации для взаимодействия с API нейронных сетей или классических алгоритмов машинного обучения существуют практически на любых языках, так что python не обязательно.

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

    5. Много практики, и доводить все это дело до проекта. Освоить git например, освоить IDE, как следует, и т.д. Специалист растет от проекта к проекту. А не от книги или курса. Книга потенциально дает возможность вырасти, а там уже кто то ей воспользуется, а кто то нет.

    Пункт два Khan Academy Там со своего уроня начинаешь, конечные цели Calculus AB, Calculus BC, Multivariable Calculus.

    Относительно книг лучшее для вхождения из того что я когда то читал это deep learning with python от François Chollet. Она конечно на python, но это только код. А так она покрывает весь пайплайн создания модели и все написано очень простым языком.
    Ответ написан
    Комментировать
  • Как лучше построить архитектуру ML-сервиса?

    Maksim_64
    @Maksim_64
    Data Analyst
    Мало информации, конечно. Я обычно использую dash. Он позволяет создать полноценное веб приложение. Для взаимодействия с пользователем. Есть большое коммунити например я использую компоненты для создания красивого интерфейса и взаимодействия. Насчет одновременного доступа не проблема, каждая сессия пользователя изолирована. В доках есть раздел галерея там большие и крутые проекты выложены на github, то есть можно много чего подсмотреть. Есть и платные компоненты. Все что по ссылкам это бесплатно и для продакшен уровня достаточно.

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

    А так в небольшие сроки можно крутое приложение, как по дизайну (фронт) так и по функционалу сделать. И все в рамках одного языка даже фронт.
    Ответ написан
    Комментировать
  • Как в сделать Pandas объединение строк группирую по определнному столбцу?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну на сам деле задачка на 5 минут, есть определенные методы заполнения пропущенных значений, 'ffill' forward fill и 'bfill' backward fill. Они и есть ключ к решению, далее группировка происходит без проблем, и дальнешее дело техники, при чем многими способами, например так.
    f = pd.DataFrame({
        'A':['a',np.NaN,np.NaN,'b',np.NaN,np.NaN,np.NaN,'v',np.NaN,np.NaN,'d',np.NaN,np.NaN],
        'B':['foo','foo','bar','bar','bar','foo','bar','foo','bar','foo','bar','foo','bar']
    })
    result = (
        df
        .groupby(df['A']
        .fillna(method='ffill'))['B']
        .apply(lambda x: ','.join(x))
        .reset_index()
    )
    result
    Ответ написан
  • AI программисты ученые или обычные разработчики?

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

    2. Про разработку:
    современный AI требует взаимодействия множества разных специалистов.

    3. Итог:
    да есть ученые работающие над созданием AI примеров много, из известных ну например, Yoshua Bengio. Это один из явных примеров именно ученого. Но есть и не ученые работающие именно над созданием новых систем AI, и работают эти люди, как в маленьких компаниях, так и в корпорациях.
    Ответ написан
    Комментировать