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

    @dmshar
    Мое мнение - нет, не стоит.
    Вы же не для галочки эти книги читаете и не для того, что-бы фактом чтения похвастаться перед кем-то. Книги читают (а правильнее - изучают), что-бы освоить что-то новое. Что-бы освоить что-то новое необходим прочный фундамент ранее изученного. Никакое чтение никакой книги такого "закрепления информации а мозгу" на дает.
    Поэтому:
    После изучения Лутца приступаем к практической работе на Python, набираемся опыта, и может быть через годик-другой переходим (дозреваем!) к "Вершинам мастерства".
    Ответ написан
    Комментировать
  • Как найти t-критерий Стьюдента, используя python?

    @dmshar
    Я не знаю, какая у вас выборка, но на всякий случай стандартное отклонения я бы считал, задав np.std (data, ddof = 1).
    По моему представлению, правильный вариант - с использованием ttest_ind(ctrl, test, equal_var=False). С ним я бы и сравнивал.
    Ответ написан
    1 комментарий
  • Ошибка python c numpy?

    @dmshar
    Ну, вы же читали, что написано по ссылке, я надеюсь. Установите другую версию numpy.
    От себя могу добавить - пользуйтесь Anaconda. Там более-менее все согласовано. По крайне мере по сравнению с тем, если самому гоняться за новыми версиями.
    Ответ написан
  • Как упростить код с циклами for?

    @dmshar
    Если у вас есть два объекта, один - [id, username,address], второй - {id, username и phone_number] и вам надо получить новый объект, состоящий из элементов гарантированно присутствующих в обоих входных объектов, то делается это с помощью пересечения. Чуть сложнее, но тоже в полтора действия находятся элементы, присутствующие только в одном из двух объектов. А дальше - делайте с этими полученными множествами что хотите, хоть схему генерируйте, хоть запросы.
    Ответ написан
    Комментировать
  • Нулевая гипотеза. Как исправить формулировку?

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

    @dmshar
    import numpy as np
    arr = np.random.randint(230,400, size=[3, 3])
    for i in range(arr.shape[1]):
        print("В "+str(i)+"-ом столбце максимальный элемент:",  arr.max(axis=0)[i])


    Или так:
    for i in range(arr.shape[1]):
        print("В "+str(i)+"-ом столбце максимальный элемент:",  arr[:,i].max())


    Массив:
    array([[263, 333, 334],
           [278, 383, 307],
           [328, 255, 314]])


    Результат в обоих случаях одинаков:
    В 0-ом столбце максимальный элемент: 328
    В 1-ом столбце максимальный элемент: 383
    В 2-ом столбце максимальный элемент: 334
    Ответ написан
    Комментировать
  • Примеры реализации классификации с помощью алгоритма XGBoost на Python или R?

    @dmshar
    Я понимаю, самому искать примеры в сети -это ниже вашего достоинства. Пусть за вас это делают другие:

    https://machinelearningmastery.com/develop-first-x...
    https://github.com/dmlc/xgboost/tree/master/demo
    https://hackernoon.com/want-a-complete-guide-for-x...
    https://www.aitimejournal.com/@jonathan.hirko/intr...
    https://www.datatechnotes.com/2019/07/classificati...
    https://nilimeshhalder.medium.com/image-classifica...

    Но если вы самостоятельно не умеете находить такую начальную и лежащую на поверхности информацию, заниматься DataScience для вас, пожалуй, рановато.

    P.S. Посмотрел ваши вопросы. Месяц назад - "Как преобразовать txt в csv?" а сегодня уже классификация с XGBoost. Эк вас заносит.
    Ответ написан
    2 комментария
  • Как сложить каждые два числа из переменной с помощью цикла?

    @dmshar
    i=0
    while i<=len(number)-6:
        print (int(number[i:i+2])+int(number[i+2:i+4])+int(number[i+4:i+6]))
        i+=6

    Результат:
    107
    77
    126
    72
    145
    193
    32
    43
    111
    53
    86
    110
    88
    Ответ написан
    Комментировать
  • Как сделать функцию, которая работала бы с любыми списками?

    @dmshar
    Если следовать обшепринятой логике - номер строиться исходя из лексикографического порядка исходного массива, то все решается в одну строчку:

    lt= ['abc', 'apple', 'pen', 'abc', 'pen', 'pc']
    lt_num=[sorted(list(set(lt))).index(x) for x in lt]


    Результат:
    [0, 1, 3, 0, 3, 2]
    Ответ написан
    3 комментария
  • Как переписать код в одну строку?

    @dmshar
    Можно ли переписать код в одну строку.. -- можно.
    Нужно записать следующий код одной строкой. - ну, нужно. Дальше что? Учитесь четко формулировать свои вопросы. И помните, что тех, кто не показывает свои попытки решить задачу, а ждет, что его задачу за него решат, на этом форуме ооочень не любят.
    Только потому, что это ваш первый вопрос, даю подсказку на ответ:

    df['d1']=df.convert_dtypes().sum(axis=1)

    Результат:
    a  b  c    d1
    I    1  2  3   3.0
    II   4  5  6   9.0
    III  7  8  9  15.0
    Ответ написан
    Комментировать
  • Как правильно реализовать скрытый слой нейросети?

    @dmshar
    Что не так?
    "города обобщались в страны" - причем тут нейросеть???
    "Этой нейронкой отсортирую статьи и выдам пользователю самые подходящие" - а причем тут нейросеть?
    Ответ написан
    Комментировать
  • Как вылечить - "No module named 'pandas'" в Python?

    @dmshar
    Один из возможных вариантов - при инсталляции модуля произошла ошибка, на которую вы не обратили внимание.
    Проверьте это, запустив:

    import sys
    'pandas' in sys.modules


    Если получите не True - перезапустите инсталляцию и внимательно отследите сообщения инсталлятора.
    Ответ написан
  • Matplotlib. Как изменить толщину оси Х и размер подписей?

    @dmshar
    Ширина линии оси X - метод set_linewidth().
    Размер шрифта - rcParams.update()
    Итого имеем:

    x = np.linspace(0, 5, 11)
    y = x**2
    fig, ax = plt.subplots()
    ax.plot(x, y, 'r')
    ax.spines['bottom'].set_linewidth(10)
    plt.rcParams.update({'font.size': 48})


    Результат5fa67e7626fb1780819834.png
    Ответ написан
    1 комментарий
  • Как найти решение для нейронной сети по прогнозированию именно будущих значений и не из базы данных?

    @dmshar
    Что-то вы странное пишете.
    Что значит "прогноз на определенный отрезок времени из базы данных". Такой прогноз делают только на этапе верификации модели. На этапе реального прогнозирования всегда (!!!) используют реально будущие даты.
    Т.е. вставляете в precict() (или его аналог - в зависимости от используемого инструмента) дату "будущего дня" и получаете результат.
    Ответ написан
    Комментировать
  • Как выделить похожие признаки в тексте(ML)?

    @dmshar
    Знание PyTorch сделает из вас специалиста по PyTorch, но никак не сделает специалиста в области МL.
    Что-бы изучать МL надо изучать МL, а PyTorch рассматривать всего-лишь как один (из многих) инструментов для решения (некоторых) задач в области МL и в области обработки естественных языков в частности. И не более.
    Поэтому, рекомендую не прыгать через пять ступенек, а начать с начал и двигаться естественным путем:
    https://www.kdnuggets.com/2020/10/roadmap-natural-...
    https://www.lexalytics.com/lexablog/machine-learni...
    https://towardsdatascience.com/text-classification...
    https://towardsdatascience.com/natural-language-pr...
    https://www.kdnuggets.com/2020/07/5-fantastic-nlp-...
    https://www.amazon.com/Applied-Text-Analysis-Pytho...
    Ответ написан
    Комментировать
  • Поможете с задачкой на Python?

    @dmshar
    Ну, не совсем, что-бы чистым циклом.

    У вас есть папка. Изначально пустая. Ваш скрипт должен зайти в директорий, посмотреть, пустая она или нет.
    Если директория пустая - генерируем файл 001. и заканчиваем работу.
    Если директория не пустая начинаем просматривать файлы последовательно - 001,002.... пока не натыкаемся на последний элемент в этой последовательности. Потом генерируем файл с номером на единицу больший, чем последний встретившийся номер файла. Заканчиваем работу.

    Если в будущем у вас некоторая произвольная папка будет уничтожена, скрипт сохранит свою работоспособность.

    P.S. Дописанный вами фрагмент вопроса с поочередными попытками открытия файлов - самый неэффективный из всех, которые можно придумать.
    Ответ написан
  • Как усовершенствовать работу кода, чтобы не выдавало "Run-time error"?

    @dmshar
    А что ВООБЩЕ делается в вашей программе.
    Она хоть какой смысл имеет?
    Вот смотрим пару последовательных строк:
    a,b=map(int,input().split())
    a==np.array([0])
    b==np.array([0])

    Что вы тут пытаетесь сделать????? на самом деле создаете массив array([False]), который к тому-же и не сохраняете. Т.е. по сути - два последних оператора никакой полезной нагрузки не несут.
    Зачем оператор c=a-b написан после предыдущего кода. Он просто из введенного числа "a" вычитает введенное число "с".
    print() - это вообще суперзагадка.

    Каково назначение оператора n,m=map(int,input().split()) ??

    Ваш скрипт эквивалентен следующему
    a,b=map(int,input().split())
    k,e=map(int,input().split())
    x,y=map(int,input().split())
    c=a-b
    d=k-e
    g=x-y
    r=c+d+g
    print(-r)


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

    @dmshar
    1. "програма должна сканировать директорию где она находится."
    import os
    path=os.getcwd()

    2."потом она эту директорию использует для открытия папок в своей директории. "
    os.chdir(path)
    3. "после нажатия на одну кнопку она использует директорию и запускает из другой папки командную строку "C:\Users\Admin\Desktop\Програма\Tools". " - это, конечно, вообще жесть.
    Но командная строки из модуля запускается вот так:
    os.system(command)

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

    @dmshar
    Ну, полностью повтроить ваш пример, разумеется не получится, но решение - вот оно:
    list_a = [["Федя",'Boston Celtics'],
              ["Петя",'Toronto Raptors'],
              ["Коля",'Toronto Raptors'],
              ["Вася", 'Молодые таланты'],
              ["Онуфрий",'Старые инвалиды']]
    
    columns = ['Name', 'Team']
    nba = pd.DataFrame(list_a, columns=columns)
    
    west = ['Boston Celtics', 'Brooklyn Nets', 'New York Knicks',
           'Philadelphia 76ers', 'Toronto Raptors', 'Chicago Bulls', 'Cleveland Cavaliers',
           'Detroit Pistons', 'Indiana Pacers', 'Milwaukee Bucks', 'Charlotte Hornets',
           'Miami Heat', 'Orlando Magic',
           'Washington Wizards', 'Minnesota Timberwolves']
    
    nba['conference']=np.where(nba['Team'].isin(west), 'western','eastern' )
    print(nba)


    Результат:
    Name             Team conference
    0     Федя   Boston Celtics    western
    1     Петя  Toronto Raptors    western
    2     Коля  Toronto Raptors    western
    3     Вася  Молодые таланты    eastern
    4  Онуфрий  Старые инвалиды    eastern
    Ответ написан
    3 комментария
  • Как повернуть массив по часовой стрелке на 90 градусов?

    @dmshar
    import numpy as np
    an=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
    bn=np.empty(shape=(an.shape[1],an.shape[0]))
    for i in range(an.shape[0]):   
        for j in range(an.shape[1]):      
            bn[j,an.shape[0]-1-i]=an[i,j]

    Было:
    array([[ 1,  2,  3,  4],
           [ 5,  6,  7,  8],
           [ 9, 10, 11, 12]])

    Результат:
    array([[ 9.,  5.,  1.],
           [10.,  6.,  2.],
           [11.,  7.,  3.],
           [12.,  8.,  4.]])


    Или на "голых" списках:
    n=3
    m=4
    a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
    k=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
    for i in range(n):   
        for j in range(m):    
            k[j][n-1-i]=a[i][j]


    Результат:
    [[9, 5, 1], 
    [10, 6, 2], 
    [11, 7, 3], 
    [12, 8, 4]]
    Ответ написан
    2 комментария