Задать вопрос
  • Почему считает не все символы?

    Maksim_64
    @Maksim_64
    ML Engineer
    где у вас print(a) вставьте вот этот код, вы выводите на печать длину массива, а нужно суммировать длины строк каждого элемента массива.
    print(sum(len(i) for i in a))
    Ответ написан
    Комментировать
  • Почему функция y=x^x начинает возрастать, начиная с аргумента 1/e?

    Maksim_64
    @Maksim_64
    ML Engineer
    Потому что точка (1/e, f(1/e)), это критическая точка. Критическая точкой называется точки где функция либо не дифференцируема, либо производная функции равна нулю.
    Соответственно наша функция, y = x^x, ее производная будет x^x*(ln(x) + 1). далее приравниваем производную к нулю x^x*(ln(x) + 1) = 0 и решаем для x. Решением данного уравнения будет 1/e Подставляем 1/e в исходное функцию и получаем это вы уже нашли округленно 0.692. (1/e,0.692) - Критическая точка. А в критических точках функция меняет свое направление, то есть если до этого шла на убавление проходя через критическую точку она пойдет на возрастание и наоборот.
    И так ответ Потому что (1/e, f(1/e)) Является критической точкой.
    Также далее посредством тестов можно найти является ли критическая точка локальным минимумом или максимум в нашем случае глобальным потому что она одна. В данном случае тест легко покажет что это точка глобальный минимум. А минимум слева убывает проходит через критическую точку и начинает возрастать.
    ДОПОЛНЕНИЕ К ответу.
    Выходит, что до 1/e функция убывает, а после - возрастает. Откуда берется такая связь?

    Здесь дело в том что данная критическая точка как указал выше является минимумом в контексте вашего вопроса даже не важно глобальным или локальным. Что бы критическая точка называлась минимум производная функции должна быть отрицательной слева от критической точки и положительной справа от критической точки если подставим в производную (ее я привел в самом начале) число не много меньшее чем критическая точка то мы получим отрицательное значение (что значит функция убывает) а если не много большее то положительное значит (функция возрастает). Поскольку функция убывает слева от критической точки и возрастает после нее это и есть определение минимума. Мы сейчас математическим методом нашли минимум. То есть ваша функция убывает до критической точки и возрастает после нее. Потому что точка является минимумом (в данном случае глобальным). Так будет не много точнее.
    Ответ написан
    Комментировать
  • Какое "time complexity" имеет операция list[element]?

    Maksim_64
    @Maksim_64
    ML Engineer
    Программа выполнится с 0(1), никакого чтения всего листа не произойдет. Потому что все вы делаете это получаете элемент по индексу. Например если изменить немножко вопрос скажем у нас есть список и словарь.
    'B' in ['A', 'B','C'] Вот это операция будет O(n)
    В то время как
    'B' in {'A':1,'B':2,'C':3}
    останется O(1).
    Ну и напоследок если список отсортирован и python знает что он отсортирован то проверка на наличие элемнта в списке будет тоже O(1).

    ОТРЕДАКТИРОВАНО
    Ну и напоследок если список отсортирован и python знает что он отсортирован то проверка на наличие элемнта в списке будет тоже O(1).

    Это утверждение абсолютно неверно. На мою ошибку указал Roman K В комментарии к моему ответу.
    Ответ написан
    5 комментариев
  • Как обратиться к элементу json?

    Maksim_64
    @Maksim_64
    ML Engineer
    id_key = list(parsed_app_json.keys())[0]
    print(parsed_app_json[id_key]['data']['name'])

    В id_key будет всегда попадать первый ключ, соответственно вы сможете обращаться к ключу name независимо от значения первого ключа.
    Ответ написан
  • Возможно ли requests сохранять вкладку включенной?

    Maksim_64
    @Maksim_64
    ML Engineer
    Да возможно.
    session = requests.Session()
    Ответ написан
    Комментировать
  • Pandas: Как вернуть один столбец из двух переданных в DataFrame.apply()?

    Maksim_64
    @Maksim_64
    ML Engineer
    Первое что бы получить mean по группам для этого в pandas есть мощный инструмент groupby
    например в вашем случае
    means = data.groupby('Социальный класс').mean()
    Это даст вам датафрейм где вы на группе запустили аггрегирующуюю функцию (можно не одну)
    теперь к ответу на вопрос все решается в одну строчку
    data["Возраст"] = data.groupby("Социальный класс").transform(lambda x: x.fillna(x.mean()))

    все этот код решит ваш вопрос, для его лучшего понимания (очень рекомендую) разберитесь как следует с groupby это очень частая проблема.
    Ответ написан
    4 комментария
  • (telegram aiogram)Выдает ошибку NameError: name 'time' is not defined?

    Maksim_64
    @Maksim_64
    ML Engineer
    Ну вы нигде не импортировали функцию time по этому и выдает ошибку.
    вначале файла импортируйте ее.
    from datetime import time
    Но судя по коду который у вас написан, появятся другие ошибки. Связанные с функцией time.
    Ответ написан
  • Как изменить элемент одного списка, который равен другому списку?

    Maksim_64
    @Maksim_64
    ML Engineer
    Ну код ваш совсем не рабочий, первое отступы (у вас 8 должно быть 4), второе new_pole вы должны объявить до цикла, до присваивания в цикле дело не дойдет когда new_pole[i_col][i_row] python выдаст ошибку уже вот здесь что не знает что такое new_pole.
    Теперь ответ на ваш вопрос, Когда вы делаете что то типа
    list1 = [1,2,3]
    new_list = list1

    вы не создаете два объекта вы создаете две ссылки на один и и тот же объект [1,2,3]. И скажем если вы сделаете
    list1.append(4) У вас будут изменения и в new_list. Потому что объект всего один а ссылки на него две.
    Что бы избежать это нужно использовать deepcopy
    Вот ваш код но в рабочей версии.
    from copy import deepcopy
    pole = [['x', 'x', 'x', '.'], ['.', '.', '.', '.'], ['x', '.', 'x', 'x'], ['x', '.', '.', '.']]
    new_pole = deepcopy(pole)
    for i_row in range(len(pole)):
        for i_col in range(len(pole[i_row])):
            new_pole[i_col][i_row] = pole[i_row][i_col]
    print(pole)
    print(new_pole)
    Ответ написан
    1 комментарий
  • Как получить PNG из NumPy array без сохранения?

    Maksim_64
    @Maksim_64
    ML Engineer
    PIL.Image.Open() это для открытия файлов. То что вы спрашиваете должно звучать так как конвертировать numpy массив в PIL.Image объект. Для это существует метод PIL.Image.fromarray(array), Возможно придется сделать rehape у массива, возможно придется задать какие то дополнительные параметры у метода fromarray. Но ваш вопрос решается этим методом.
    Ответ написан
    2 комментария
  • Как в Scrapy сохранить результат в JSON при запуске из скрипта?

    Maksim_64
    @Maksim_64
    ML Engineer
    нужно добавить в settings.py он должен был создаться в вашем scrapy проекте.
    FEEDS = {
        'filename.json': {'format': 'json'}
    }
    Ответ написан
    Комментировать
  • Как сконвертировать минуты в часы и минуты?

    Maksim_64
    @Maksim_64
    ML Engineer
    А почему ваше решение не проходит? Ну вот попробуйте альтернативное решение (которое также работает).
    hour = int(input("Введите часы: "))
    minute = int(input("Введите минуты: "))
    waiting = int(input("Введите ожидание в минутах: "))
    
    total_minuts = minute + waiting
    waiting_h = total_minuts // 60
    result_m = '0' + str(total_minuts % 60) if total_minuts % 60 < 10 else total_minuts % 60
    
    result_hours = hour + waiting_h
    if result_hours >= 24:
        result_hours = result_hours - 24
    
    if (result_hours < 10): 
        result_hours = '0' + str(result_hours)
        
    print(f'На часах будет: {result_hours}:{result_m}')
    Ответ написан
    Комментировать
  • Как суммировать количество повторяющих значений?

    Maksim_64
    @Maksim_64
    ML Engineer
    SELECT A.id, A.data_created, A.subject,A.number_id, B.count
      FROM tablename A
           INNER JOIN (SELECT number_id, count(number_id) AS count
                         FROM tablename 
                        GROUP BY number_id) B ON A.number_id = B.number_id
    Ответ написан
    Комментировать
  • Как последовательно объединить несколько DataFrame с одинаковыми столбцами?

    Maksim_64
    @Maksim_64
    ML Engineer
    если планируете использовать pd. concat(), то сначала собираете ваши фреймы в список frame_list. A потом этот список в pd.concat(). далее pd.concat имеет аргумент axis, его поставьте 0 (если у вас совпадают имена столбцов), он будет добавлять их вниз новыми рядами.
    ваш псевдо код будет иметь вид
    frame_list = []
    for i in ally_code:
        df = get_units_player( get_player_json(i) )
        frame_list.append(df)
    final_df = pd.concat(frame_list,axis= 0)
    Ответ написан
    1 комментарий
  • Как рассчитать отступ по оси Х?

    Maksim_64
    @Maksim_64
    ML Engineer
    находим коэффициент пропорциональности сторон назовем k
    k = высота / ширина = 2320 / 3855 = 0.601
    новая высота (она известна) / новую ширину = 0.601
    800 / x = 0.601
    новая ширина = x = 1331
    Находим коэффициент уменьшения ширины:
    старая ширина * a = 1331
    3855 * a = 1331
    a = 0.345
    находим координату X для важной точки 864 * 0.345 = 298
    Ответ написан
    Комментировать
  • Установление значений для маркеров в Matplotlib?

    Maksim_64
    @Maksim_64
    ML Engineer
    это просто в функцию plot добавляем параметер '-o' и все.
    ax.plot(x, y,'-o')
    Извиняюсь неправильно прочитал вопрос увидел маркеры и все, а вы хотите значения подставить. Сейчас отредактирую.
    ax.plot(x,y,'-o')
    for i,v in enumerate(y):
        ax.text(x[i],y[i],v,fontsize=16,va='top')
    Ответ написан
    Комментировать
  • Date.time к сегоднешнему дню прибавить с помощью timedelta несколько дней?

    Maksim_64
    @Maksim_64
    ML Engineer
    Ну так вы же его уже импортровали from datetime import datetime, вторая ошибка, что вы сначала конвертируете в строку а потом добавляете timedelta(days=10), это тоже выдаст вам ошибку.
    вообщем слегка подправил ваш код
    from datetime import datetime, timedelta
    now_day = (datetime.utcnow() + timedelta(days=10)).strftime("%d")
    future = int(now_day)
    print(future)
    Ответ написан
    3 комментария
  • При роботе с библиотекой colorama(0.4.6) не изменяеться цвет текста?

    Maksim_64
    @Maksim_64
    ML Engineer
    Если у вас windows тогда
    from colorama import init, Fore
    init()
    print(Fore.RED + 'Hello World!')

    будет работать как вы ожидаете. Это на линукс терминал, init() не нужен, а на windows вы должны инициализироваться посредством init(). init() вы используете только раз и потом работаете с библиотекой как обычно.
    Ответ написан
  • Как узнать самое большое число в Python?

    Maksim_64
    @Maksim_64
    ML Engineer
    n = int(input("Введите количество учеников: "))
    students_height = []
    for i in range(1,n+1):
        students_height.append(int(input(f'Введите рост ученика под номером {i} (см): ')))
    max_height = max(students_height)
    number = students_height.index(max_height)+1
    print(f'Самый высокий ученик под номером: {number} имеет рост {max_height} см')

    Если конечно же правильно понял условие вашей проблемы. То вот код попробуйте спрашивает сколько учеников затем спрашивает рост каждого ну и выводит рост и номер ученика. (номера начинаются с 1 как у вас)
    Ответ написан
    Комментировать
  • Почему функция возвращает None?

    Maksim_64
    @Maksim_64
    ML Engineer
    а где return добавьте и функция начнет вам возвращать то что вы ожидаете.
    return longest_substring(string, substring_len - 1)
    Ответ написан
    Комментировать