Ответы пользователя по тегу Python
  • Работа с многочленами без sympy?

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

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

    @dmshar
    Более запутано описать ваше пожелание наверное было-бы трудно.
    Что означает "каким-то образом сохранить прошлое значение a, чтоб его прогнать через эту сортировку". Одно "прошлое"? Или каждое "прошлое"? Зачем его сохранять, если оно пришло, вы его "прогнали через сортировку" и пошли принимать следующее? У вас каждую секунду приходит один элемент массива a, или вот все четыре элемента и составляют единое "новое значение"? Вам надо сохранять значение a или результат сортировки?

    В общем, если у вас поступают данные и вы их хотите сначала все накопить, а потом "прогнать через сортировку", то создавайте список, куда будете складывать свои поступающие значения, а потом, после накопления полного массива входных данных, циклом проходить по этому массиву и делать свою сортировку.
    Если вы очень хотите обрабатывать данных по мере поступления, то - прочитали данные, отсортировали и в результирующий список поместили уже отсортированный результат в качестве.
    Если же вы имели ввиду что-то другое, то сформулируйте свой вопрос более четко и однозначно.
    Ответ написан
  • Подключение другого репозитория к другому на Python - будет ли так работать? Или как правильно?

    @dmshar
    Ну, вообще-то конструкция
    if (условие):
        import модуль1 as m
    else:
        import модуль2 as m

    синтаксически корректна.
    А вот корректно (и целесообразно-ли) то, что вы понаписали в конструкции from - разберетесь надеюсь сами.
    Ответ написан
    Комментировать
  • Как прибавить несколько месяцев с помощью datetime?

    @dmshar
    Ни непосредственно месяца, ни непосредственно года задать с помощью timedelta нельзя, и это понятно. Год может быть 365 и 366 дней, а месяц - 28,29,30 и 31.
    Тем не менее обойти это можно. Ниже один варинат на чистом datatime, а остальные - с привлечением других библиотек.
    Показываю на примере года. Думаю, с месяцем разберетесь сами по аналогии
    import datetime as dt
    from dateutil.relativedelta import relativedelta
    import pandas as pd
    d1=dt.datetime(2021, 5, 16)
    print ('d1==',d1)
    d2=d1.replace(year=d1.year+1)
    print ('d2==',d2)
    d3=d1+relativedelta(years=1)
    print ('d3==',d3)
    d4=d1+pd.DateOffset(years=1)
    print ('d4==',d4)

    Результаты:
    d1== 2021-05-16 00:00:00
    d2== 2022-05-16 00:00:00
    d3== 2022-05-16 00:00:00
    d4== 2022-05-16 00:00:00
    Ответ написан
    1 комментарий
  • Как проставить все точки на графике python?

    @dmshar
    В matplotlib есть модуль ticker. В нем есть метод MultipleLocator.
    А в самом matplotlib есть методы set_major_locator и set_minor_locator.
    Комбинируя их вы получаете возможность не просто управлять метками по осям, а еще и двумя классами меток - главными (например - через 10), и минорными (ну, например, через 2, 1 или 0.01 - как захотите).
    Хотел привести пример, но поскольку вы не дали себе труда привести (как того - и не зря - требуют правила этого сайта) минимально воспроизводимый фрагмент кода, что-бы в него можно было встроить ответ на ваш вопрос - мне писать все с начала для вашего примера тоже лень. Поэтому просто подскажу, что решение ваше будет выглядеть примерно вот так:

    import matplotlib.ticker as ticker
    ax.xaxis.set_major_locator(ticker.MultipleLocator(2))
    Ответ написан
    Комментировать
  • Какая ошибка в коде?

    @dmshar
    А причем тут неправильный код, когда у вас неправильная формула? Формула (и соответствующие код) для расчета сложных процентов выглядит следующим образом:

    base=100
    interest=0.1
    years=1
    repayment=base*(1+interest)**years
    print(repayment)


    Ну, или если очень хочется в виде функции, тогда так:
    def deposite(base,years,interest=0.1):
        return base*(1+interest)**years
    
    print(deposite(100,1)


    И никаких циклов тут не нужно.
    Ответ написан
    Комментировать
  • Мой exe файл скомпилированный с помощью pyinstaller не работает на другом пк. В чём проблема?

    @dmshar
    Ну, например, что "на другом пк" установлена неожиданная версия операционной системы. Или нет файла Data Base. Или вообще там стоит 486 процессор, потому и "медленно запускается".
    А вообще странная просьба "поставить диагноз" не видя пациента.
    Ответ написан
    Комментировать
  • Как предотвратить распространение платного ПО третьими лицами?

    @dmshar
    Ну там всякие там Microsoft да MathWorks, которым это не "трудновато", борются э этим явлением уже лет 30 и никак не могут побороть. А вы хотите и что-бы деньги получать и что-бы было не трудновато. Весьма амбициозно.
    Кстати, а вы планируете со своих продаж платить роялити разработчикам Python и других библиотек, которыми вы пользовались при разработке?
    Ответ написан
    1 комментарий
  • Как перевести многомерный массив numpy в одномерный?

    @dmshar
    A = np.arange(0, 15).reshape(5, 3)
    B=A.ravel()

    или так:
    D=A.flatten()

    Стесняюсь спросить - а что просто открыть учебник нынче запрещено? Или хотя-бы в Google заглянуть?
    Ответ написан
    9 комментариев
  • Работа с датами в pandas?

    @dmshar
    Если вам уж очень кортит сделать скрипт исправление конкретной ошибки - то можете использовать один из вариантов:
    df['С'] = [s.replace('..','.') for s in df['A']]
    либо:
    def func(x):
        return x.replace('..','.')
    df['B']=df['A'].apply(func)


    Результат:


    /
            A           B           С
    0  25.05..2001  25.05.2001  25.05.2001
    1   25.06.2001  25.06.2001  25.06.2001
    2   25.43.2004  25.43.2004  25.43.2004
    3   05.02.2005  05.02.2005  05.02.2005
    4   27.02.2008  27.02.2008  27.02.2008
    Ответ написан
    Комментировать
  • Как можна найти сумму дипазона?

    @dmshar
    А что вы подразумеваете под "суммой елементов в диапазоне B," если B - у вас последовательно принимает ОДНО значение из ряда четных чисел от 2 до 50:
    Ответ написан
    Комментировать
  • Как найти пересечение строки и столбца таблицы?

    @dmshar
    Если вы поместили вопрос под тегом Python, то и ответ будет касаться этого языка.
    В Python есть чудесная библиотека Pandas - в аккурат для представления ваших данных.
    Если бы дали себе труд привести в вопросе - как того требуют (и не зря) правила сайта - не картинку, а набранную вами табличку (хотя-бы в EXCEL) я бы дал себе труд написать код, как такие данные "укладываются" в DataFrame. А раз нет - ну разберетесь сами, куда смотреть я сказал.
    После того, как DataFrame создан значение на пересечении столбца и строки ищется элементарно, в одну команду, например так:
    df.ef[(df.Свыше==65) & (df.До==80)]
    Ответ написан
    Комментировать
  • Как сделать так чтобы функция выполнялась при условии выполнения прошлой?

    @dmshar
    А что, у вас есть мультипроцессинг? В Python, как и в любом другом языке программирования, если не предпринять специальных усилий и вызвать две функции последовательно, то вторая будет выполняться после окончания работы первой.
    Ну вот и вызывайте вашу функцию отправку фото после вызова функции отправки текста.
    Ответ написан
    Комментировать
  • Как в python сделать случайный выбор, но с определенной вероятностью?

    @dmshar
    Примерно так:
    import random
    lt = ['q1','q2', 'q3']
    res=[]
    for i in range(10000):
        rnd=random.random()
        if rnd<0.2:
            res.append(lt[0])
        elif  rnd<0.5:
            res.append(lt[1])
        else:
            res.append(lt[2])
    print(res.count(lt[0]),res.count(lt[1]),res.count(lt[2]))

    Тело цикла - как раз и есть выбор с заданной вероятностью. А выводимый результат и сам цикл - проверка того, что данные выбираются действительно с примерно заданной вероятностью:
    2018 3020 4962
    Ответ написан
    1 комментарий
  • Всегда ли методу нужны скобки?

    @dmshar
    "дает одинаковый вывод" - а как вы это проверяли???
    s = 'ABCDE'
    print(s.lower())
    print(s.lower)

    Результат:
    abcde
    <built-in method lower of str object at 0x00000201495A68B0>

    Более того, попробуйте посмотреть, что за объекты вы получите:

    a=s.lower()
    b=s.lower


    Коротко говоря - s.lower - это создание функции:

    b=s.lower
    b()


    Результат:
    'abcde'
    Ответ написан
    1 комментарий
  • Как предсказать число из последовательности?

    @dmshar
    А вы уверенны, что там вообще есть какая-то закономерность? Математика - не магия, если закономерности нет - то ничего получить нельзя. Поэтому, начинать надо с того, а откуда взялась ваша последовательность, что она собой представляет - временной ряд или результат работы генератора случайных числе, откуда взялись ограничения на значения, сколько у вас имеется чисел для предсказания и надо-ли предсказывать по всем значениям или достаточно взять только несколько последних и пр. А уж потом думать, можно-ли для данной задачи сделать предсказание и если можно - то какой из методов тут можно попробовать использовать.
    P.S. И расшифруйте, пожалуйста. Что имеется ввиду под " заранее известных чисел"? Какое отношение их известность имеет к сформулированной задаче.
    Ответ написан
    2 комментария
  • Как заполнить ячейки Excel данными из словаря?

    @dmshar
    Так у метода dict.keys() вроде как-бы "Parameters: There are no parameters". Что вы ей передаете??? И вообще, что за объект "b" у вас - мы конечно должны догадаться сами.
    Кроме того, даже при корректном использовании этого метода он возвращает СПИСОК всех ключей. Что вы пытаетесь засунуть в ячейку 'B1' ?
    Ответ написан
    9 комментариев
  • Как сделать while(cin>>a) в PYTHON?

    @dmshar
    while True:
        try:   
            a=int(input())
            print(a*2)
        except:
            break


    По вводу не числа или пустой строки - цикл завершается
    Ответ написан
    Комментировать
  • Как заставить нейронку на Python подгонять коэффициенты уравнений?

    @dmshar
    Господи, опять велосипед....
    Ну поставили вы в теге "машинное обучение". Значит понимаете, что начинается все не с нейронных сетей, а со статистики. Там ваша задача, которая называется задачей регрессии, 120 лет как решается элементарно.
    В sklearn есть функция LinearRegression.
    В numpy есть модуль numpy.linalg.linalg, в котором есть нужные реализации

    Не хотите готовую функцию - пишите свою, материала в сети тоже навалом:
    https://towardsdatascience.com/linear-regression-f...
    https://machinelearningmastery.com/implement-simpl...

    Причем тут "случайно сгенерированный график" - вообще не понятно. Да и как вы собрались графики сравнивать, если график это рисунок. А сравнивать можно данные. И не надо сразу браться за нелинейные функции, начните с простейших, с линейных, потом - доберетесь и до квадратичных и до нескольких переменных. В общем - рекомендую потратить время и разобраться с азов, что-бы потом не выглядеть вот так:6076c59895078933463804.png
    Ответ написан
    7 комментариев