Ответы пользователя по тегу Python
  • Как с помощью Pandas искать значения на пересечении ячеек?

    @dmshar
    Какой пример кода? Вот этот, что-ли?
    df.rr.loc[1]
    Обратите внимание, что iloc ищет по индексу-номеру, а loc - по значению индекса.
    В вашем конкретном примере - они (номер и значение) отличаются на 1.
    Ответ написан
    Комментировать
  • Как предотвратить бесконечный/долгий цикл/рекурсия при решении математической задачи в python?

    @dmshar
    Не понимаю, что у вас не работает. Пишем элементарный скрипт:

    n = 5**55555
    print(n)
    ns=str(n)
    len(ns)

    Код выполняется практически мгновенно.
    Чему равняется полученный результат я тут писать не буду, но вот последний вывод, который говорит, сколько цифр в вашем числе приведу: 38832.
    Так что надо не ошибку предотвращать, а просто ограничивать числа, с которыми вы работаете.
    Ответ написан
  • Как сделать чтоб matplotlib не сжимал график по оси x с датой?

    @dmshar
    Что значит - "выглядел как"?
    На первом графике - рисунок построен по тикам.
    На втором - по датам.
    Как вы от второго переходили к первому или наоборот - сие нам не ведомо. Но Matplotplb считает, что расстояние между двумя объектами - эквидистантны. И ему не важно - как - в тиках или в датах - вы ему эти данные подсовываете. Поэтому тут не Matplotlib надо разбираться, а с тем, как вы сделали переход между разными моментами фиксации значений.
    Покажите ваш набор данных примерно между 2021-04-05 и 2021-04-07 - и все станет понятно.
    Ответ написан
  • Как в numpy из матрицы с векторами из int сделать матрицу из булевых векторов?

    @dmshar
    С учетом всех уточнений, наиболее лаконичное, что мне удалось придумать:

    import numpy as np
    import itertools
    ind=np.array([[[1,2,3]], [[3,2,4]]])
    M=4
    
    lt=np.zeros((len(ind),1,M+1),dtype=int)
    for a in range(len(ind)):
        lt[a,0,list(itertools.chain(*ind[a]))]+=1
    
    print(lt)

    Результат:
    [[[0 1 1 1 0]]
     [[0 0 1 1 1]]]


    Если бы не странный размер исходного массива, о которой я писал выше:
    ind.shape
    Out[15]: (2, 1, 3)

    все было бы на много проще.
    Ответ написан
    Комментировать
  • Pandas как сделать продолжение даты для прогноза?

    @dmshar
    Во-первых, вы уверены, что вы "прогнозируете временные ИНТЕРВАЛЫ"? Вообще-то прогнозирование именно интервалов, т.е. времени МЕЖДУ двумя событиями, выполняют с помощью т.н. рядов событий, имеющих как правило распределение Пуассона. Вы точно именно этим занимаетесь?
    Во-вторых, попробуйте сами прочесть вот это: " как правильно продолжить дату для каждого числа без сложных расчетов по типу разница между значением, сколько значений в день, в неделю и как разница по времени и так далее чтобы потом дополнить спрогнозированные значения новым временем по оси X" И попробуйте понять что тут написано.
    В-третьих, на сколько я понимаю из ваших многочисленных предыдущих постов и на этом и на других форумах, на самом деле у вас типичный эквидистантные ряды. И на самом деле вы прогнозируете не от даты, а от номера тика. А раз так - то "продолжить ряд для прогнозирования"- это взять тики, начиная от последнего, для которого вы сеть тренировали и далее, с заданным интервалом, на сколько хватит "нахальства". Последнее - не шутка, всегда надо помнить о допустимом горизонте прогнозирования и о крайней нежелательности выхода за его пределы.
    Ответ написан
    Комментировать
  • Не работает бот на питоне что делать?

    @dmshar
    "код был взят с форума 'Хабр' ". "бот на питоне что делать?" - блин, а естественный ответ "УЧИТЬ PYTHON" в голову ну никак не приходит.
    Когда уже до юных талантов дойдет, что надо сначала изучать инструмент, потом - что-то с его помощью делать! Хорошо электрикам - не будешь знать теории - пару раз током шибанет, сразу все умнеют.

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

    По сути вопроса - предпоследний абзац кода - мало того, что не вставлен в соответствующее описание функции, так еще и в нем ни один фрагмент действия по правилам не выделен.
    Повторяю с чего начал :"Учить Python".
    Ответ написан
    Комментировать
  • Как узнать кол-во столбцов в списке python?

    @dmshar
    Дело в том, что то, что вы показали - не есть многомерный массив. Это всего-лишь список, каждый элемент которого содержит тоже список.
    Почему вопрос не корректен - ну попробуйте ответить на вопрос, что вы должны получить в результате, если список будет выглядеть, например, вот так:
    ifirst=[[1],[2,3], [4,5,6],[7,8,9,10]]

    Можно конечно приспособить len(ifirst), len(ifirst(0)),len(ifirst(1)) и перебирать далее - можно и рекурсивно.
    Но если вам действительно нужны массивы - то используйте numpy, и там - прямо предназначенный для ответа на ваш вопрос метод .shape
    Ответ написан
    Комментировать
  • Как в matplotlib python отобразить только некоторые точки на оси Х?

    @dmshar
    Господи, 257 раз уже писал ответ лично, в том числе и на этом форуме. Ну неужели трудно ответ найти самостоятельно?
    Изучайте модуль matplotlib.ticker далее методы MultipleLocator из него и set_major_locator из matplotlib.pyplot.
    Ну, или можно просто повернуть надписи, что-бы не накладывались - метод xticks() параметр rotation=90.
    Ответ написан
    Комментировать
  • Почему возникает эта ошибка и как этот код исправить?

    @dmshar
    Повторю вопрос тут, раз ответа нет:
    Что вы хотели сделать вот этим оператором,

    id, name = map(list, zip(file))

    Очевидно, map создает гораздо больше объектов, чем полей, которые вы показываете слева.
    А вообще - оберните-ка свой код в соответствующий тег в вопросе. Это уже не первый ваш вопрос на форуме, за такое могут уже и наказать.
    Ответ написан
    Комментировать
  • Вычислить сумму ряда с заданной точностью?

    @dmshar
    Первая проблема - в неуважении к публике. У вас проблема? Плохо. А сообщить нам какая проблема - это не про вас. Пусть сами думают.
    Вторая проблема - у вас бесконечный цикл. Оба составляющих условия
    i <= n
    внутри цикла не меняются. Как вы предполагали из этого цикла выйти?
    Ответ написан
  • Отображение процентной составляющей в сложенной гистограмме plotly?

    @dmshar
    Если новичек - читаем документацию:

    https://plotly.com/python/bar-charts/
    https://plotly.com/python/histograms/

    На будущее запоминаем - на форум идем тогда, когда что-то делаем сами и нам что-то конкретное при этом непонятно, или не получается. При этом - обязательно - приводим фрагмент собственного кода и данных, по которым другие могут воспроизвести свою проблему, подправить или показать, как ее решать.
    Ответ написан
    Комментировать
  • Можно ли сделать интерполяцию в методе scatter?

    @dmshar
    Уточните-ка свою хотелку.
    Есть температуры. Понятно. Им соответствуют цвета. Тут уже вопрос. Цвета, те которые colors - они вам жестко заданы или вы их сами задали?
    "Интерполяция с промежуточными значениями цветов между точками" совсем непонятно.
    Так как у вас заданы цвета - на самом деле в трехмерном пространстве RGB, то для каких "промежуточных точках" вы хотите сделать интерполяции?
    Если задача мной правильно понята, то у вам на самом деле надо делать интерполяцию температур в промежуточных точках, а уже их значения представлять соответствующим цветом. Но тогда цвета температур надо задавать не от фонаря, а по некоторому алгоритму. Ну например, вот так:

    data = [36.1, 33.2, 34.6, 35.3, 34.1, 32.9, 35.6, 36.7]  
    rgb = [int(i*10) for i in data] 
    c = ax.scatter(theta, r,
            c = rgb, 
            s=area, cmap='hsv', alpha=1)


    После этого находите (интерполируете или еще как - тут уж вам виднее) температуру в нужной вам точке, переводите ее по той-же формуле в цвет и рисуете.

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

    @dmshar
    Потому что переменная s у вас глобальная. (хотя зачем - непонятно, ну да ладно). А раз так, то ее надо объявлять явно:

    global s

    Но самое неприятное, что об этом вам наверняка сообщил интерпретатор, а вы этого даже не поняли.
    Ответ написан
    3 комментария
  • Почему программа не выдает результат?

    @dmshar
    Очень странный вопрос. А какое число, по вашему мнению, из диапазона [312614; 312651], имеет ровно шесть различных натуральных делителей? При том, что у вас написана программа так, что "1" вы тоже считаете делителем.
    Ответ написан
    6 комментариев
  • Как получить конкретный строки в 3-хмерном массиве NumPy?

    @dmshar
    Может вот так:
    import numpy as np
    a = np.array([[[1, 0, 0], [2, 0, 1], [2, 0, 2]], [[0, 0, 0], [2, 0, 3], [0, 0, 0]]])
    a[a[:,:,0]==2]

    Результат:
    array([[2, 0, 1],
           [2, 0, 2],
           [2, 0, 3]])
    Ответ написан
    Комментировать
  • Как в sklearn найти самый похожий элемент модели?

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

    Хотя исходя из фразеологии вопроса: "Как в sklearn найти самый похожий элемент модели", " находить уже имеющиеся в модели ответы", "Тот, по которому модель находит ответ" очень похоже, что вы начали что-то делать (ну да "разбиваю на слова, обрабатываю, лемматизирую, векторизую" - т.е. по сути просто вызываете готовые функции) даже не ознакомившись с тем, что такое sklearn, ни как и для чего она используется, ни что такое "модель" и как с ними работают в машинном обучении, ни как ищут подобные тексты. Как же вам что-то объяснять, если нет азов-фундамента?

    Поэтом рекомендую начать с того, чтобы разобраться с основами, а потом переходить к решению какой-то своей задачи. Тем более про работу с текстами в машинном обучении написано очень много чего.
    Ответ написан
    Комментировать
  • Как сделать условие чтобы пайтон считывал данные с переменные и если оно = ДА то игра продолжалась если НЕТ то breack?

    @dmshar
    Как сделать условие чтобы пайтон считывал данные с переменные и если оно = ДА то игра продолжалась если НЕТ то breack?
    Для этого надо открыть учебник и ПРОЧИТАТЬ, как пишутся условные операторы в Python. Самостоятельно сумеете?
    Ответ написан
    Комментировать
  • Программа вылетает без ошибки. Что делать?

    @dmshar
    Не правда, что вылетает без ошибки.
    Интерпретатор вам ясно сообщает:
    x = input("Хотите продолжить? счет:" + c2 + "-" +c1 + arg + "(да чтобы продолжить!):")
    TypeError: can only concatenate str (not "int") to str


    Что-же тут такого сложного, что надо на форуме спрашивать? Вы хоть учебник открывать пробовали?
    x = input("Хотите продолжить? счет:" + str(c2) + "-" + str(c1) + arg + "(да чтобы продолжить!):")


    Думаю, следующая ваш вопрос будет по поводу неправильного подсчета результата. Заранее спрашиваю.
    Вот это:
    if c1 > c1:
        arg = " в пользу Вас "

    что по-вашему должно означать?
    Ответ написан
    1 комментарий
  • Как лаконично переписать код на python?

    @dmshar
    Лаконичность не должна быть самоцелью. Да и потом, что значить - "лаконично"? Меньше строк в коде? Меньше символов?

    Можно написать - если вопрос именно "как получить значение yyy" - вот так:

    print('yyy ', (Literal("NS1:id=") + Suppress('"') + Word(nums) + Suppress('"')).searchString(texta)[0][1])


    Лаконично. Вот только точно как минимум хуже читаемо.
    Ответ написан
    Комментировать
  • Как привести выборку в нормальное распределение?

    @dmshar
    "Я вот хочу проверить две группы Т-Тестом" - хотеть можно что угодно. Но вот к исследованию данных это не имеет никакого отношения. Если у вас данные не подчиняются нормальному закону распределения, то использовать t-критерий Стьюдента крайне нерационально. Для таких случаев есть другие тесты, из группы непараметрических. Их много. Можно начать с теста Вилкоксона-Манна-Уитни, и/или критерия Колмогорова-Смирнова. Их стандартные реализации есть в scipy.stats. Впрочем, как и кучи других методов, которые могут применятся в таких случаях.
    Ответ написан
    Комментировать