• Как приступить к реализации голосового ассистента?

    @dmshar
    Отвечаю по пунктам:

    какую библиотеку лучше выбрать? --> ту, которую вы лично лучше и глубже изучили. Это относиться к аналогичному вопросу в любой сфере разработке ПО, так что ничго нового.

    Что почитать еще можно, чтобы больше плавать в этой теме?
    https://maxdrive.kyiv.ua/dokumentacija/pochta/kak-...
    https://vc.ru/dev/158797-python-kak-sozdat-prostey...
    https://medium.com/nuances-of-programming/создаем-...
    https://temofeev.ru/info/articles/v-zakladki-posha...
    https://habr.com/ru/post/529590/
    и т.д.
    Это все информация с первой странички Google-поиска. Откуда следует еще один общий совет: Сначала подтянуть свои навыки в самостоятельном выполнении поиска ответов на элементарные вопросы, а уж потом пытаться самостоятельно тягаться с "десятками профессионалов". Поверьте, они свои разработки ведут не по подсказкам с форума. Без такого умения все потуги станут простой тратой времени. Это тоже относиться к любой сфере разработки ПО.
    Ответ написан
    Комментировать
  • Как передать переменную из одной функции в другую?

    @dmshar
    Вопрос не имеет никакого отношения к написанию ботов вообще, ни к telegram в частности. Вопрос имеет отношения к Python, его основам, а так-же к необходимости его изучения.
    Для передачи значений между функциями ВСЕГДА И ВЕЗДЕ существует ТРИ способа.
    1. Классический: в общей вызывающей программе создаете переменную, которую передаете как параметр в обе функции. В одной из этих функций эта переменная заполняется значением, в другой - читается и используется.
    2. Нерекомендуемый: через глобальную переменную.
    3. Для очень сложных систем: через внешний файл.
    Все.
    Вот и выбирайте тот из них, который вам подходит больше.
    Ответ написан
    Комментировать
  • Как посчитать доверительный интервал для суммы двух ошибок при отличающимся числе степеней свободы?

    @dmshar
    Что-то вы перемудрили.
    Позиция первая.
    Доверительный интервал любой случайной величины при заданном уровне значимости Альфа определяется границами, отсекающими такую область под функцией плотности распределения, площадь которой равна 1-Альфа.
    Позиция вторая.
    Если имеются две случайные величины, то случайная величина, определяемая как их сумма имеет математическое ожидание равное сумме матожиданий этих величин, а дисперсия определяется по формуле: D[X+Y]=D[X]+D[Y]+2cov(X,Y) где
    cov(X,Y) - это ковариация этих величин.
    Позиция третья. Оценкой матожидания есть среднее арифметической значений выборки случайной величины, а оценкой дисперсии - сумма квадратов отклонений от среднего значения деленая на (n-1).
    Если ваши случайные величины независимы между собой, то значение ковариации можно считать равной 0.

    Таким образом, у вас имеется значение параметров распределения суммы этих величин. Дисперсии и матожидания. Имея эти параметры в любом статистическом пакете, в таблицах в учебниках статистики и теории вероятностей (ну или в ручную, если есть склонность к садомазохизму) можно вычислить (в таблицах - найти) границы доверительного интервала суммы как квантили Альфа/2 и 1- Альфа/2 квантили. Это и есть границы вашего искомого доверительного интервала.
    Ответ написан
  • Доступное обучение по работе с сетевым оборудованием?

    @dmshar
    Вот честно, я не понял. Вы прикалываетесь? Или серьезно?
    Ну первые же строчки в Google-выдаче:
    https://edu-cisco.org/courses/
    https://eitca.org/eitca-is-information-security-ac...
    https://www.specialist.ru/vendor/cisco
    https://training-microtest.ru/course/ccnax-v-30

    https://training-microtest.ru/courses/hp?ThemeId=79
    https://www.hp.com/ru-ru/pdf/310113_learningcentre...
    https://education.hpe.com/ru/ru/training/index.html

    https://muk.training/courses/course_vendor/emc/page/2/
    https://www.dell.com/ru-ru
    https://academy.ru/catalog/emc/
    meliusgroup.ru/obuchenie-lenovo

    Извините, ну судя по вопросу, вам не серверы и сетевуху настраивать надо учиться, а осваивать элементарную компьютерную грамотность. Элементарный информационный поиск в Гуугл сегодня умеют делать шестиклассники. Без такого умения - причем очень уверенного - никакое обучение, а тем более дальнейшая работа в этом направлении будут НЕдоступными.
    Ответ написан
    6 комментариев
  • Как рассчитать норму количества багов на проект?

    @dmshar
    А зачем считать "баги на проект"?? Тем более, что любой мало-мальски опытный программист знает главную аксиому программирования: "Любой последний найденный баг в программе/проекте всегда является на самом деле предпоследним".
    И это не шутка.
    Вот из этого и исходите.
    Ответ написан
    2 комментария
  • Где применяют python помимо веба и data science?

    @dmshar
    Вот осенил вас такой сложный и уникальный вопрос. Ну почему не приложить минимальных усилий и не найти самому ответ на него? Это во-первых, интересно, во-вторых развивает ваши мозги, в третьих, вы получаете ответы, где люди думали над ним, собирали информацию, старались ответ изложить доходчиво и пр. А на форуме - ну кто-то что-то вам скажет в ответ на такой обширный вопрос. И толку.
    Вот, зашев Гуугл. Вот прямо "из свежачка"- статья июльская.
    https://medium.com/geekculture/heres-everything-yo...

    Вот тоже ответы с первой ж страницы выдачи. Изучайте:
    https://brunoyam.com/blog/programmirovanie/pythons...
    https://otus.ru/journal/gde-ispolzuetsya-python/
    https://skillboх.ru/media/code/dlya_chego_nuzhen_python
    Ответ написан
    4 комментария
  • Правильный ли выбор книг?

    @dmshar
    Для начала гляньте "какая" математика вам в первую очередь нужна для дальнейшего изучения Data Science.
    ai-news.ru/2018/12/vazhnye_aspekty_matematiki_v_na...
    https://habr.com/ru/post/432670/
    https://www.datasciencecentral.com/tutorial-the-ma...
    https://www.analyticsvidhya.com/blog/2019/10/mathe...
    https://mml-book.github.io/ --- Часть 1.
    https://www.kdnuggets.com/2020/06/math-data-scienc...

    А вот тут в конце есть маленький список отобранных с точки зрения обучения Machine Learning и Deep Learning книг именно по математике:
    https://www.cyberforum.ru/ai/thread2010374.html#po...
    Ответ написан
    1 комментарий
  • Как из картинки с буквами, наложенными друг на друга сделать цельную надпись?

    @dmshar
    Не советую вам браться за эту задачу пока вы не научитесь самостоятельно проводить элементарный поиск в Google.
    Впрочем, возможно у вас уже заблокировали Google. Тогда вам будет очень не просто. Поэтому попробую помочь.
    Ну вот с начальных страниц поиска:
    https://habr.com/ru/post/149091/
    https://gamevid.ru/reviews/python-raspoznavanie-ka...
    https://github.com/ptigas/simple-captcha-solver
    https://medium.com/nerd-for-tech/crack-those-captc...
    https://medium.com/geekculture/how-to-solve-captch...
    https://2captcha.com/lang/python
    https://thepythonguru.com/decoding-captchas-using-...
    Из статей можно понять, как подойти к решению данной задачи. Ну а далее уже зависит от того, насколько вы можете творчески осмыслить информацию и на ее основании решить свою задачу.
    Удачи.
    Ответ написан
    Комментировать
  • Как изучить Go? Курсы или есть достаточные бесплатные ресурсы?

    @dmshar
    Возникает вопрос. Если вы имеете некоторое представление о Java, Ruby, PHP, то зачем вам Go вот прямо сейчас? Для коллекции? Что-бы в резюме список подлиннее был? Я серьезно спрашиваю. Если вы хотите стать программистом - хотя-бы на уровне юниор-кодировщика - то вам надо нарабатывать навыки в чем-то одном, или чем-то смежном. А навыки - это в первую очередь практика. Ну и углубление знания/понимания особенностей работы с выбранным инструментом. Тогда у вас есть шанс получить указанную должность и далее совершенствовать, расти в выбранном направлении, а потом, при желании и необходимости - расширять диапазон. А так - ну будете вы "знать в небольшой степени" еще и Go. Ну и что?
    Это как попробовать водить болид Формулы 1, 100-тонный КаМАЗ и тролейбус. Попробовали, но на работу вас ни по одной из этих профессий не возьмут. И посоветуют не тратить время на то, что-бы пробовать водить еще и трактор, а углублять навыки в выбранной профессии. Это же естественно.

    Это - не наезд. Это просто совет. Задать себе простой вопрос "зачем"? Думайте.
    Ответ написан
    2 комментария
  • Как пройтись по 2 спискам одновременно?

    @dmshar
    for directory in directories:
           response = await session.get(url=f"{url}/{directory}")
           data.append([f"{url}/{directory}", response.status, response.content_length])
    if extensions:
            for extension in extensions:
                    response = await session.get(url=f"{url}/{directory}.{extension}")
                    data.append([f"{url}/{directory}.{extension}", response.status, response.content_length])
    else:
            for directory in directories:
                    response = await session.get(url=f"{url}/{directory}")
                    data.append([f"{url}/{directory}", response.status, response.content_length])
    Ответ написан
    Комментировать
  • Какую книгу Олиферов брать?

    @dmshar
    Вы прочитали хотя-бы аннотацию к книге, которую хотите купить. Если нет, а рассчитываете на подсказки, то привожу две цитаты из нее:
    1. Эта книга значительно отличается от той, которую читали их родители. Многое из того, что интересовало читателей конца 90-х годов — например, правило 4-х хабов, согласование сетей IP и IPX или сравнение технологий 100VG-AnyLAN и FDDI — совсем не упоминается в последних изданиях. За 20 лет немало технологий прошли полный цикл от модного термина и всеобщего признания к практически полному забвению. Каждое новое издание книги в той или иной мере отражало изменения ландшафта сетевых технологий.
    2. Не является исключением и данное издание — оно значительно переработано, около трети материала представляет собой или совсем новую информацию, или существенно переработанное изложение тем.

    И третий вопрос от меня: Вы хотите изучать технологии современных компьютерных сетей или историю развития компьютерный сетей?

    Попробуйте самостоятельно проанализировать приведенные цитаты и сделать вывод.
    Ответ написан
    2 комментария
  • Где найти бесплатные курсы по data analytics?

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

    Какие 3 безответные СТРАНИЦЫ Гуугла? Вы о чем? Ну вот просто набрал строку в Гуугл. Ответы из первой десятки:
    https://openedu.ru/program/ITMOUniversity/DATAN/?s...
    https://www.coursera.org/professional-certificates...
    https://careerfoundry.com/en/blog/data-analytics/f...
    https://sky.pro/courses/analytics/data_analytics/
    https://www.udemy.com/course/data-analysis-with-ex...
    https://karpov.courses/analytics
    https://skillfactory.ru/data-analyst-pro#syllabus

    Любой открываете, берете описание программы и самостоятельно идете по темам, изучаете. А если даже вдруг что-то не совсем то, что вы ожидаете - ну так проанализируйте, скомпонуйте то, что именно вам надо.
    Ответ написан
  • АБ тест оценить значимость в Python?

    @dmshar
    Да, в scipy.stats есть группа методов для реализации теста Стьюдента в разных вариантах, среди них и scipy.stats.ttest_ind(). В интеренте информации не море, а целый океан. Ну просто первые-же ссылки в Гуугл:
    https://www.pythonfordatascience.org/independent-s...
    https://machinelearningmastery.com/how-to-code-the...
    https://github.com/RachelPengmkt/Analyzing-a-Simpl...
    Ответ написан
    Комментировать
  • Какой язык наиболее актуален для переписывания нейросети с питона перед её размещением на робототехническом устройстве?

    @dmshar
    Обученная нейросеть это по сути алгоритм, с помощью которого решается реальная задача. Алгоритм может быть разным, но чаше всего - это в конечном итоге некая математическая формула. Причем живущая не сама по себе, а взаимодействующая с другими компонентами системы (например - с системой управления того-же пылесоса, или системой управления автомобилями из ваших примеров). В свою очередь это предполагает, что эти системы уже функционируют на некоторых процессорах, встроенных в объект. Отсюда ответ - Нейросеть "в режиме продакшн" может и должна быть реализована на том языке, на котором имеется компилятор для вашего процессора. Как правило, это действительно "С", "С++" или "Go", но могут быть варианты. Надо смотреть и решать именно исходя из характеристик целевого вычислительного устройства (процессора).
    P.S. Идеальный вариант, конечно, всегда ассемблер соответствующего процессора, как язык, позволяющий писать наиболее эффективные на этапе выполнения решения. Но позволительна такая роскошь с точки зрения наличия соответствующих разработчиков, стоимости, а также скорости разработки - другой вопрос. Наверное Тесла может себе такое позволить. А вот некий маленький стартап - не уверен.
    Ответ написан
    Комментировать
  • Что значит, что алгоритм работает...?

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

    @dmshar
    Имея геолокацию найти расстояние между двумя точками - задача элементарная (вспоминаем школьную геометрию). Соответственно найти несколько точек, у который расстояния то-ли минимальное, то-ли не превышает заданную величину (те-же 50 км.) также особого труда не представляет. Хотя что делать, если населенные пункты А и В находятся в 50км, но между ними курсирует скоростной поезд, а пункты А и С - в трех километрах, но через высокогорный перевал или реку - с объездом в 100 км (да, бывает и так) ? В общем, мне кажется поиск по геолокации - не лучший способ решения проблемы.

    А вот искать "по области" (или по населенному пункту) - уже перспективнее. Наиболее просто способ - "в лоб" выяснять у пользователя из какой он области. И тогда проблем нет. Но если исходить из геолокации - то проблема серьезная. Надо где-то искать соответствующую базу (по сути границ областей), потом решать задачу, в какую область угодила точка.... В общем весьма муторно.
    Можно, например, спрашивать город, от которого по имеющейся открытой информации переходить к области. Или по области находить города - в том числе близлежайшие - такая карта расстояний имеется (правда, не заю, в свободном-ли доступе). На худой конец искать API Google-maps и тянуть информацию из него.

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

    @dmshar
    1. Во-первых, чем делать цикл до N, если совершенно понятно, что достаточно сделать его до N/2 - ускорение в два раза.
    2. Во-вторых - достаточно делать цикл до N**0.5 - не очевидно, но легко доказывается. Вот вам еще большее ускорение.
    3. Ну, или возьмите более быстрый компьютер - тоже помогает "ускорить" процесс.
    Ответ написан
    Комментировать
  • Как изучить ООП С#?

    @dmshar
    В каких книгах можно получить полные сведения об ООП, о том как и где использовать его принципы или ,те или иные приемы ООП?
    - ни в каких. Надо понять, что ООП не НЕ универсальное средство. Это инструмент создания больших и сложных проектов. Вам действительно дали азы и начала. Для общего понимания, для привыкания. А вот когда "дорастете" до серьезных проектов, начнете применять (а не по книгам "изучать") ООП на практике - вот тогда и придут понимание. Причем приходить будет постепенно, вместе с ростом вашего опыта. Бесполезно на уровне "изучаю язык программирования по книгам" беспредельно углубляться в тему, в ООП в том числе. Начните писать реальные проекты. Причем, для первых, несложных проектов ООП тоже будет либо ни к месту, либо даже вредно. Но вот потом, когда задачи станут действительно сложными - вот тогда все станет на свои места. И вот тогда можно будет сказать, что вы знаете, понимаете и к месту применяете ООП.
    Хотя, разумеется, сейчас набегут сюда новички, которые наперебой начнут советовать всякие книги и сайты для того что бы быстрее стать "профессионалам". В этом и есть прелесть получения подсказок на форуме - в том, что вам насоветуют десяток разных вариантов решения проблемы. А вот выбор - все равно останется за вами.
    Ответ написан
    Комментировать
  • Как начать C++ с абсолютного нуля в IT?

    @dmshar
    Согласен с предыдущими рекомендациями.
    Только я бы поменял местами сначала - "курс гугления и английского", а уж потом "любой бесплатный курс для начинающих." или учебник. Тем более, что ТС как бы вопросы по Python тут уже задавал. Более года назад. А по JS и СSS - уже в этом году. Что, впрочем, как-то слабо сочетается с " В IT и Computer Science абсолютный ноль." Поэтому я бы еще рекомендовал - в качестве нулевого пункта "развития до junior и глубокого погружения в эту область" - в обязательном порядке школьный курс информатики.
    Ответ написан
    Комментировать
  • Как обойти выход за границы двумерного массива?

    @dmshar
    Ну, я бы делал так:
    def neighbors(arr,row,column):
        rows=len(arr)
        columns=len(arr[0])
        for i in range (row - 1,row + 2):
            for j in range(column - 1,column + 2):
                if (j >= 0 and i >= 0 and j < columns and i < rows and (not(i == row and j == column))):
                    print (arr[i][j])
        return 
    b =   [[9, 5, 3],[0, 7, -1],[-5, 2, 9]]   
    desk=[item for sublist in b for item in sublist]
    for ind0, elt0 in enumerate(b):
        for ind1,elt1 in enumerate( elt0):
            print (ind0,ind1,'------',elt1)
            neighbors(b,ind0,ind1)


    Результат:
    0 0 ------ 9
    5
    0
    7
    0 1 ------ 5
    9
    3
    0
    7
    -1
    0 2 ------ 3
    5
    7
    -1
    1 0 ------ 0
    9
    5
    7
    -5
    2
    1 1 ------ 7
    9
    5
    3
    0
    -1
    -5
    2
    9
    1 2 ------ -1
    5
    3
    7
    2
    9
    2 0 ------ -5
    0
    7
    2
    2 1 ------ 2
    0
    7
    -1
    -5
    9
    2 2 ------ 9
    7
    -1
    2

    А при использовании numpy можно бы сделать немного быстрее и элегантнее.
    Приведен самый общий случай. В случае необходимости "соседи по диагонали" тоже легко убираются.
    Ответ написан
    Комментировать