• Как пройтись построчно в Pandas?

    @skozlovf
    В Вашем случае лямбда-функции не особо нужны, есть варианты короче и быстрее:

    df['col3'] = df.min(axis=1)
    # или
    import numpy as np
    df['col3'] = np.minimum(df.col1, df.col2)
    Ответ написан
    Комментировать
  • Как это работает (алгоритм с использованием рекурсии для вычисление числа Фибоначчи)?

    sM0kfyz
    @sM0kfyz
    Frontend dev.
    Во время выполнения кода в оперативной памяти создается вспомогательная структура называемая стеком. Она работает по принципу LIFO - последний вошел - первый вышел. Когда вы вызываете функцию некоторые ее данные добавляются в стек - аргументы, расположение в памяти, адрес возврата (вообще эти данные зависят от реализации).
    То есть когда вы вызвали getFibonachi(8) в стеке создалась запись о этом вызове. При этом n == 8. То есть мы попадаем в else и вызываем getFibonachi(7). Теперь стек имеет запись о двух функциях. И т.д. До тех пор пока n == 1. Тогда функция вернет 1. Эта последняя функция удаляется из стека. То есть на этом этапе стек содержит функции:
    getFibonachi(2)
    getFibonachi(3)
    getFibonachi(4)
    getFibonachi(5)
    getFibonachi(6)
    getFibonachi(7)
    getFibonachi(8)
    Мы возвращаемя к выполнению функции вызванной с аргументом 2. В этот момент мы рассчитывали функцию getFibonachi(1) (она была успешно вычислена и вернула 1) и теперь переходим к второму слагаемому. getFibonachi(0) (т.к n==2). Она возвращает 0. Теперь мы можем вычислить функцию getFibonachi(2), потому что мы уже получили значения от двух функций, которые были вызваны в блоке else. getFibonachi(2) вернет 1 (1+0=1) и удалится из стека. Теперь он выглядит так:
    getFibonachi(3)
    getFibonachi(4)
    getFibonachi(5)
    getFibonachi(6)
    getFibonachi(7)
    getFibonachi(8)
    Продолжаем выполнение функции с вершины стека. И так далее пока все функции не вернут значения)) Более подробно гуглите: стек вызовов функции. Немного криво, но как смог.
    Можете использовать дебаггер js в браузере. Чтобы визуализировать работу стека.
    Ответ написан
    2 комментария
  • Какой вуз выбрать для того, чтобы стать программистом?

    antoo
    @antoo
    Какое-то время учился в ИТМО и ЛЭТИ, вот что могу сказать по этим вузам:

    ЛЭТИ - совсем не советую, программа очень старая, а преподаватели (по крайней мере с теми, с кем сталкивался) боятся сделать от неё любой шаг в сторону, да и отношение к студентам там так себе (хотя исключения есть) , в итоге, если рассматривать полученные знания в совокупности на затраченное время - совершенно того не стоит. Вместо него обрати внимание на СПбГУТ - многие студенты из ЛЭТИ массово бегут туда после первого курса, офигевая от пофигизма и совковости.

    ИТМО - совсем другая история: чувствуется, что реально хотят научить чему-то полезному, знакомы с современной разработкой. За время обучения ни разу не сталкивался с хамством или несправедливым отношением, отношение к студентам очень хорошее как со стороны преподов, так и со стороны деканата. Учиться не очень тяжело, вбивать знания насильно не будут, но если хочешь реально учиться - проблем не будет. Порадовала внеурочная деятельность на кафедре, её некоторые преподаватели организовывают сами - на одних из таких удалось поработать с интересным железом, например с терминалами и банкоматами; знаю ребят, которые так же внеурочно в ВУЗе въезжали в Machine Learning.
    По факультетам: ИТИП (программная инженерия и инф. системы) готовит преимущественно олимпиадников, считается местной элитой, поступить - сложно, учиться - ещё сложнее, учат алгоритмам и матану, уровень знаний Computer Science на выходе впечатляет, практических навыков будет не так много, но не думаю, что у кого-то из выпускников возникнут проблемы с их получением. КТИУ (где я учился) - вариант попроще и попрактичнее, там больше свободы и меньше адской теории, но "мегамозги" выходят именно с ИТИПа.

    Кстати, про практические навыки - в первом же семестре на одном из установочных предметов примерно скажут, что "те, кто на 3-м курсе ещё не будет работать по специальности - рискует получить диплом, который на выходе окажется не особо нужным без доп. знаний", и это очень правдиво - реальный опыт будет куда полезнее на том этапе, да и программа с 3-го курса более лояльна к такому виду деятельности. Совет довольно универсальный для любых универов, как мне кажется.

    Теперь не мой личный опыт, а то, что слышал от других:

    СПбГУ: IT-направления похожи на описание ИТИП, много матана и алгоритмов, но точно так же выходят другими людьми оттуда - братья Дуровы как пример. Давнишний конкурент ИТМО на всех международных олимпиадах. Ещё имеет смысл посмотреть там широкие фундаментальные специальности вроде "Математика" - очень сложно, но это 100% первое место по образованию в СПб, и топ-5 по России.

    Про политех слышал мало, знакомые учатся там в основном на специальностях связанных с физикой, об особых прорывах в IT не слышал, но сам ВУЗ толковый и негатива о нём нет.

    Суммарно по моему мнению:
    Если интересует хардкор, алгоритмы, матан и классический Computer Science - ИТМО (ИТИП), СПбГУ.
    Оптимально для нежелающих хардкора, но готовых к самообразованию: ИТМО (КТИУ).
    Если не хватает баллов в ИТМО - идти в Политех, если и на него не хватит - в СПбГУТ.
    ЛЭТИ обходить стороной.
    Ответ написан
    Комментировать
  • Реализация алгоритма нахождения минимальной суммы непрерывной последовательности, есть варианты?

    0xD34F
    @0xD34F
    function getMinSum(arr, n) {
      let sum = 0;
      let minSum = 0
      let index = 0;
    
      for (let i = 0; i < n; sum += arr[i++]) ;
      minSum = sum;
    
      for (let i = n; i < arr.length; i++) {
        sum -= arr[i - n] - arr[i];
        if (sum < minSum) {
          minSum = sum;
          index = i - n + 1;
        }
      }
    
      return {
        sum: minSum,
        seq: arr.slice(index, index + n),
      };
    }
    Ответ написан
    1 комментарий
  • Нейросети. Почему Python?

    @Ambrosian
    Вы имеете ввиду про ситуацию, когда нейросети - все исследовательские проекты.
    Ученые - не обязательно программисты. А Python - язык программирования с низким порогом входа.
    Никто не пишет с нуля, не тратит время - просто используют уже написанные другими библиотеки.
    В результате вокруг Python сложилось community по нейросетям.
    Если вам именно в исследовательских целях - поступайте также.

    P.S.:
    Это вы еще про Фортран не знаете.
    Язык давным давно не используется программистами.
    Но физиками продолжает использоваться.
    Ответ написан
  • Почему свёрточная нейронная сеть доходит только до 70% правильных ответов?

    Arseny_Info
    @Arseny_Info
    R&D engineer
    Для ответа на такой вопрос не хватает логов обучения. Причем не только по трейну, но и по валидации (судя по коду, валидации сейчас вообще нет).

    Гипотезы:
    - лучше использовать хотя бы 2-3 сверточных слоя со свертками 3*3, чем один 8*8, т.к. это обеспечит больще нелинейности;
    - learning rate = .25 может быть слишком большим, так что в итоге сеть начинает осциллировать вокруг локального минимума.
    Ответ написан
    2 комментария
  • Насколько актуальны данные книги (JavaScript, ООП, Python)?

    @kindpirate
    1 и 2 - почитайте, лишним не должно быть, если уже есть какой-то опыт в js.
    Конкретно про 3 книгу не скажу. Многие советуют книгу Банды 4х (опять же классика, но может быть тяжело по началу). Если совсем ничего не знаете по данной теме, то можно взять книгу из серии Head First "Паттерны проектирования" (только там для описания используется java).
    4 и 6 книги точно не устарели - классика всегда актуальна.
    5 книга - дело вкуса:)
    Да, забыл оставить полезную ссылку с алгоритмами и структурами данных на js: https://github.com/trekhleb/javascript-algorithms
    Ответ написан
    Комментировать
  • Выбор архитектуры и средств реализации сверточной нейронной сети?

    @dmshar
    Вообще-то ответ на три первых заданных вопроса - это нехилая себе такая работа. С соответствующим анализом, сравнением и пр. необходимыми атрибутами.
    Ответ на три последних - это на уровне студента первокурсника-троечника(отличники даже на первом курсе таких вопросов уже не задают).
    Поэтому, исходя из заданных вопросов, у вас есть два пути. Лучшее что вы можете сделать - если не хотите, конечно, с треском завалить проект - это нанять компетентного в этих вопросах человека. Дорого конечно, но за знания и умения (других) надо платить.
    Второй путь - самостоятельно разобраться в теме, благо литературы - навалом, даже как-то не совсем удобно их тут перечислять. Ну, для затравки, разве что:
    1. Хайкин Нейронные сети полный курс. 2 издание
    2. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. — СПб.: Питер, 2018
    3. Гудфеллоу Я., Бенджио И., Курвилль А. Глубокое обучение -М.: ДМК Пресс, 2018.
    4. David Kriesel A Brief Introduction to Neural Networks
    (вон, в комментах вам даже чью-то докторскую диссертацию по ходу освоить предложили :-). Правда не думаю, что вы в ней разберетесь, не освоив истоки)
    Ну и в интернете ссылок более чем много. Для совсем ленивых - есть видеокурсы. Даже на русском :-)
    Только долгий этот путь. Так что лучше все-таки - первый.
    Ответ написан
    1 комментарий
  • Как начать понимать программирование?

    darakanoit
    @darakanoit
    ЯП не является целью, ЯП лишь инструмент как и любой другой язык в мире.(не только it).
    Обычно называют это техническим складом ума - думать по другому.
    Я бы советовал Вам выделить время на логические раздумия над задачами. Когда понимаешь как должно работать это в голове,потом потихоньку переносишь в код.
    Ответ написан
    3 комментария
  • Как вернуть первоначальный (исходный) вид нормализованным данным?

    @Atlant77 Автор вопроса
    Я думал все куда сложнее, а оказалось это математика даже не 7-8 класса, а где то 5-6, вот примеры.
    Аж стыдно.

    Формула
    x = (((y - dMin) * (xMax  - xMin)) / (dMax - dMin)) + xMin;
    Ответ написан
    Комментировать
  • В чем смысл ВУЗа?

    @garik_R
    On my way
    В ВУЗе учат взаимодействовать с людьми. Не в том смысле, что прогулять пары, прибухнуть, а наоборот, решить проблемную контрольную, написать курсовую. Развивать навыки, в любой сфере. Часто, именно этим, люди в Вузе и пренебрегают. Это социальная структура, где, по идеи, должны были собраться люди со схожими интересами. К сожалению, у нас это простой способ откосить от армии. Или родители сказали: "Ты должен поступить..." еtc. Кроме того, диплом поможет устроиться на хорошую работу у нас в стране или где-то в другой.

    Зачем учить? Что касается "странных" предметов, которые, казалось бы, никому не нужны - это ошибочная точка зрения. Любая работа сталкивает нас с такими неожиданностями, о которых мы и не думали. Вот тогда и вспоминаешь про какое-то ОБЖ и так далее. Часто негодование на этот счет связано не с большим умом, а наоборот, с большим незнанением и узким взглядом на жизнь. Подобные предметы нужно проглотить, отмучаться и знать где подсмотреть в случае чего. Или просто посмотреть шире. Вы же не станете отрицать, что даже если Вы учитесь на программиста, знать основы экономики необходимо, верно? А потом вы можете устроиться на работу, где будете писать какой-то софт где уже и не помешают и глубокие знания?

    Без математики можно заниматься только формошлепством. Везде так или иначе нужна математика. Где-то простая арифметика, где-то нюансы шифрования.

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

    Учить наизусть? Скажем так - хуже не будет. Да, сейчас всё немного изменилось. Если до ~2000х важно было иметь хорошую память. По книгам сложней искать, но других способов тогда не было. Сейчас нет острой необходимости помнить важную информацию. Сейчас важно знать где найти. Это умение стало более важным сейчас, из-за доступности интернета. Важная информация откладывается у вас в голове, если вы её постоянно используете - этого не избежать. Тут действительно, сейчас важно знать где найти, чем помнить досконально. Но человек, который является ходячей библиотекой оставляет гаааараздо более интересное впечатление, нежели тот, который говорит: "Щас, сек, я точно знаю, это вот здесь было написано". Перед работодателем это совершенно точно. Если вы помните, умеете развивать мысль, а не тупо заучили - то вы оставите более яркое впечатление. Мне кажется, это старомодный подход и со временем действительно можно будет погуглить и это всех будет устраивать. Но сейчас имидж умного, начитаного человека всё еще очень важен. Всё еще интересно поговорить вживую, с телефоном в кармане, нежели общаться отрывками статей, которые только что прочитал.

    В своём мнении Вы правы. Можно быть исключительно дисциплинированным человеком и всё учить по книгам. Прокачать себя в теории достаточно хорошо, да и в практике. Но между книгой и делом всё равно остается пропасть. Так или иначе, жизнь это социальная штука. На работе у вас может быть точно такой же начальник отдела, как и тот преподаватель в ВУЗе. Если вы пойдете в офис работать - там будут живые люди, с которыми нужно уметь взаимодействовать. Да даже если будете фрилансером - нужно говорить с клиентом, договариваться с подрядчиками если не успеваете, или с кем либо советоваться, если чего-то не знаете.

    ВУЗ нужен. Он учит, учит общению с людьми, решению социальных проблем. Учит решать поставленные задачи, порой, которых вы не ожидали. Дает возможность встретить людей, которым интересна таже область, что и Вам. Встретить людей, которые умнее Вас и прокачаться до их уровня. И да, как ни крути он даёт вам бумажечку. Может быть, она Вам и не пригодится, а может, вы в какой-то момент сильно пожалеете, что не получили её. Я бы даже сказал, что ВУЗ - это часть молодости, и не нужно её себя лишать. :-) И добавил бы, что желательно учится не в родном городе. Но это уже лирика :)
    Ответ написан
    4 комментария
  • В чем смысл ВУЗа?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    7102012232216iwsmt.jpeg
    Смысл ВУЗа в получении корочки, расширяющей возможности по трудоустройству. Впрочем, с каждым годом всё меньше и меньше компаний её требуют.
    Ответ написан
    1 комментарий
  • Что значит базовая математика для программиста?

    sim3x
    @sim3x
    Арифметика
    Базовая (совсем базовая) булева алгебра

    Если соберетесь заниматься чем-то серьезным, то матрицы, теорвер, матстат и профильное

    Школьную математику нужно не зубрить (или зубрить так, чтоб в 90 лет помнить как вчера), а понимать
    Ответ написан
  • Где найти больше готовых решений по этому типу?

    rockon404
    @rockon404
    Frontend Developer
    Нехватка знаний базовых возможностей языка. Изучите любой современный учебник по JavaScript от корки до корки. Хороший вариант learn.javasript.ru
    Ответ написан
    1 комментарий
  • Короче, школьник, 9 класс, Хочу быть программистом. Изучаю основы. Но с математикой и физикой ну очень туго. Что делать? Или универ не нужен?

    @l1ttl3_h0rse
    Не понимать математику и физику в 9 классе, но хотеть стать программистом - странно. Для начала, на вашем месте, я бы подумал, хороши ли вы вообще в логике, которая так необходима в программировании. Может быть, вам стоило бы заняться чем-то другим, потому что программирование - это бесконечное обучение, а вы даже не можете освоить материал 9 класса. Я сам девятиклассник сейчас, но не испытываю вообще никаких проблем с этими предметами, учитывая, что учусь в мат. лицее. Почти весь материал прошлого (8) класса я спокойно прошел сам, т.к. по болезни отсутствовал полгода. И, если честно, не вижу ничего сложного в том, чтобы повторить в целом всю программу обучения с 5 по 9 класс (а вам это необходимо, раз у вас "туго"), потому что все школьные знания, даваемые в этот период, крайне примитивные. И, что самое главное, - лучше вам наверстать все упущенное сейчас, чем затягивать до 11 класса (тогда вам в любом случае придется учить эти предметы, т.к. важность ЕГЭ никто не отменял), потому что тогда будет уже слишком поздно.

    Лично я просто взял учебник и читал, ну, иногда гуглил темы, которые не понял. Может быть вам Фоксфордовские учебники помогут или что-то подобное. В общем, не вижу ничего сложного в повторении. Странно, что вы вообще этот вопрос сюда задали (потому что задано уже миллион подобных).
    Ответ написан
    1 комментарий
  • Короче, школьник, 9 класс, Хочу быть программистом. Изучаю основы. Но с математикой и физикой ну очень туго. Что делать? Или универ не нужен?

    Henryh
    @Henryh
    Веб-программист
    В работе программиста часто попадаются задачи, решение которых требует освоения целого пласта технологий (бывало). Многие книжки толще учебников по математике. Работая программистом - нужно постоянно учиться, объём знаний нужных для проекта иногда превышает годы обучения в школе - а их проходится осваивать за короткий срок.

    Так что вот тебе первая задача по программированию - подготовиться к экзаменам. Если эта задача не по силам, то лучше подумать о других профессиях.

    ps За годы работы большая часть математики не понадобилась, но умение решать математические задачи - бесценно.
    Ответ написан
    Комментировать
  • Короче, школьник, 9 класс, Хочу быть программистом. Изучаю основы. Но с математикой и физикой ну очень туго. Что делать? Или универ не нужен?

    Ptolemy_master
    @Ptolemy_master
    А что значит "туго с математикой и физикой"? Не понимаете? Или неинтересно? В универ на программиста без знания этих предметов не поступить.

    Когда мне надо было, я сама подготовилась к этим предметам. Просто взяла книжки "Математика для поступающих" и "Физика для поступающих" и обе их прошла. Можно поступить по-другому. Взять учебники физику с 6 (или 7 класса, уж не знаю, с какого сейчас учат), и читать их, решать задачи. В этих предметах нет ничего магического или супесложного, просто не надо проскакивать непонятные места, а надо их всеми силами себе разжевать.
    Ответ написан
    Комментировать
  • Список литературы (или курсов) математики для Data Scientist?

    @dmshar
    Так "список литературы и курсов для Data Scientist" (как в названии) или" Список литературы(или курсов) МАТЕМАТИКИ для Data Scientist" (как в тексте). Это как бы немного разные вещи.
    На базе 7-9 класса можно, конечно, захотеть и Великий адронний колайдер следать дома на кухне, но все-таки рекомендую для Data Science остановиться на любом наборе курсов математики на уровне 2-3 курса вышки. Ну, например, - линейная алгебра+методы оптимизации с численными методами+теория вероятности и основы матстатистики+основы дискретной математики +алгоритмы обработки данных.
    Любые учебники - вполне пригодны. Наичнайте читать и если вам понятно и учебник "зашел" - алтернативы искать не стоит .
    А если текущий уровень - это 7-9 класс" - ну так стоит начать с того, что-бы довести его до уровня, при котором можно начинать университетские учебник читать - т.е до уровня выпускного класса (как минимум).
    Удачи.
    Ответ написан
    4 комментария
  • Машинные константы и асимптотический анализ алгоритмов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    machine dependent constants - это количество тактов на один цикл алгоритма и тактовая частота процессора.
    Предположим, что линейный алгоритм O(n) работает на быстром компьютере и каждый цикл выполняется за 1 наносекунду, то есть общее время будет 1×n. Логарифмический алгоритм O(log n) работает на медленном компьютере и каждый его цикл занимает 100 наносекунд, общее время 100×log(n) Посмотрим, как будет меняться время алгоритма при изменении n.
    n    | O(n) | O(log n)
    1    |    1 |   100
    10   |   10 |   200
    100  |  100 |   300
    1000 | 1000 |   400

    То есть, в интервале от 100 до 1000 есть значение n, после которого логарифмический алгоритм работает быстрее даже на более медленном компьютере.
    В общем случае значение n можно получить из равенства a×n = b×log(n)
    Ответ написан
    1 комментарий
  • Как научится понимать Bitrix за один вечер?

    neuotq
    @neuotq
    Прокрастинация
    Перво наперво настойчиво рекомендую сообщить об этом заказчику, саму верстку выполнить в полном объеме согласно принятому описанию заказа, а далее предложить варианты заказчику. Либо вы заканчиваете полностью просто верстку статичных html для последующей интеграцией специалиста по bitrix в саму систему, либо вы сами берете на себя эти доработки но с условиями расширения времени заказа (и может быть оплаты).
    Вашей вины в том что заказчик полностью не описал задачу нет, но и самого заказчика конечно же полностью в этом винить нельзя и будет по честному для заказчика как можно быстрее ему сообщить о проблеме и наиболее легкие пути выхода для всех сторон.
    Если там человек адекватный, он оценит честность и думает пойдет вас на встречу если вы аргументировано обоснуете иные сроки или иные условия выполнения заказа.
    Ну и в крайнем случае можно закрыть заказ по согласовыванию сторон, если же он подаст жалобу, то у вас тоже есть право жаловаться на условия ТЗ, в которых не было раскрыта истинная сложность задания.
    И еще раз повторю, я настоятельно рекомендую быть прежде всего честным с заказчиком, а не стараться сделать то что у вас очень может быть не получится и таким образом неожиданно для заказчика сорвать сроки/качество продукта. Поэтому лучше как можно раньше предупредить, чтобы человек тоже скорректировал свои планы и оценил вашу честность.
    Ответ написан
    Комментировать