Задать вопрос
  • Как исправить ошибку установки библиотеки на Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Скорее всего переустанавливать, удалять текущую версию. Ставить с++ сначала потом заново ставить tf.
    https://stackoverflow.com/questions/67259900/tenso...

    https://stackoverflow.com/questions/61342220/modul...

    https://learn.microsoft.com/en-us/cpp/windows/late...
    Ответ написан
    3 комментария
  • Как научиться делать ИИ?

    Maksim_64
    @Maksim_64
    Data Analyst
    Что бы не использовать готовое, а делать свое.

    1. Сильные математические знания, которые позволят читать научные стать или хотя бы подходящую литературу, по RL например Reinforcement Learning, second edition An Introduction by Richard S. Sutton and Andrew G. Barto. Это главная базовая литература.

    2. Сильные скилы в программировании определенные алгоритмы очень сложны.

    3. Очень много времени.

    4. Вычислительные мощности.

    В легких для чтения статьях рассматриваются, отдельные компоненты, и их применения, а не ИИ с нуля.
    Ответ написан
    3 комментария
  • Как объединить две таблицы в pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    pd.merge(левая таблица, правая таблица, left_on='CELL',right_on='GeranCellId ', how=method)

    где метод left, right,inner, outer, cross. Это типы джойнов.
    merge

    Ну и выбери нужные колонки, например. для левой таблицы тебе не нужны BSC и LAC, если ты по правой будешь джойнить, тебе эти колонки оттуда нужны. Выбирать нужные колонки и ставить их в желаемом порядке делают c помощью loc. фрейм.loc[:,[колонка1, колнка2, итд]]
    Ответ написан
    Комментировать
  • Почему моё решение неправильное?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну так первый ответ 1/2, и второй 1/5.
    Мы имеем дело с условной вероятностью. Когда мы имеем дело с условной вероятностью мы спрашиваем. Каким образом произошедшее событие изменяет пространство выборки?

    P(A|B) = какова вероятность, что выпало четное число с учетом того что выпавшее число кратное 5. Есть всего два кратных 5 числа (это 10 и 5) такой у нас стало пространство выборки, из это пространства мы спрашиваем какова вероятность что число четное у нас один удовлетворяющий условию ответ 1/2

    P(B|A) = какова вероятность, что выпало число кратное 5 с учетом того что выпавшее число четное. Есть 5 четных чисел (это 2,4,6,8,10) такой у нас стало пространство выборки, из это пространства мы спрашиваем какова вероятность что число кратное 5 у нас один удовлетворяющий условию ответ 1/5
    Ответ написан
    Комментировать
  • Как преобразовать вложенные словари в объекты с типами для API-обёртки?

    Maksim_64
    @Maksim_64
    Data Analyst
    Задачка не маленькая, и попыток ее решить ты не предоставил. Есть вот так вот - хочу вот так вот, и все.
    Могу посоветовать книга Fluent Python глава 22 Dynamic Attributes and Properties.
    В ней как раз на примере вложенного json объяснено предельно подробно, как решать подобные задачи.
    Ответ написан
    Комментировать
  • Как очистить оперативную память с python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Python не позволяет работать с памятью напрямую. Очистка происходит сборщиком мусора, когда количество ссылок на объект равно нулю. Например когда ты используешь del ты удаляешь ссылку на объект, то есть счетчик ссылок - 1. и когда он равен нулю, то произойдет полное удаление объекта из памяти.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не помешало бы, пример несколько строк из фрейма которые не сортируются.
    2. Обратно возвращать в строку не обязательно.
    3. Методы чтения имеют параметр parse_dates для того что бы строковое представление даты перводить в тип данных datetime64
    вот небольшой примерчик
    (
        pd.DataFrame({
            'string_dates':['17.08.2024','15.08.2024','20.09.2024'],
            'values':[10,100,1000]
        })
        .assign(
            dates=lambda x: pd.to_datetime(x['string_dates'],format='%d.%m.%Y')
        )
        .sort_values(by='dates')
    )
    как видишь все сортируется, обрати внимания на типы данных. Колонку которая используется для сортировки можно дропнуть, ну или создать ее что называется "на лету".
    Ответ написан
    Комментировать
  • Можно ли сравнить два изображения между собой на похожесть?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Определить для себя что ты понимаешь под похожестью. В комментарии верное подмечено.
    2. Закодировать изображения в тензорное представления.
    3. Сравнивать дистанции между двумя тензорами евклидова дистанция, cosine similarity и т.д.

    Сейчас даже базы есть, я такую использовал в проекте недавно (chroma db), которые оптимизируют поиск ближайшей дистанции по изображениям / текстам. То есть пишешь запрос входной эмбединг а он тебе выдает запись с наименьшей дистанцией, к данному эмбедингу.
    Ответ написан
    Комментировать
  • Как можно реализовать решение с обратной индексацией?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну поработай с индексом да и все.
    Самое примитивное
    def __getitem__(self, index):
            try:
                return self.data[-(index+1)]
            except IndexError:
                return None
    Ответ написан
    Комментировать
  • В какую структуру лучше всего сохранить небольшие графы/деревья (2-100 вершин)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если не большие, что мешает граф хранить в графе. Обойтись без преобразования, а использовать сереализацию. Модуль pickle, или методы сереализации предусмотренные библиотеками, которыми ты пользуешься для работы с графами. Например самая популярная библиотека для работы с графами (networkx) естественно имеет методы сереализации write_graphml. Поддерживает разные форматы и т.д.
    Ответ написан
    Комментировать
  • Если любой из элементов массива слов имеется в строке - выдать true, как?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Проходишься по своему массиву и спрашиваешь присутствует ли твое слово в тексте который ввел пользователь.
    2. В результате получаешь массив булевых значений True False
    3. Если в массиве есть True, значит в тексте введенным пользователем есть слово из твоего массива слов.

    Детали реализации: any и list comprehension
    Ответ написан
    Комментировать
  • Почему Python не видит библиотеку?

    Maksim_64
    @Maksim_64
    Data Analyst
    Оставить на денек, другой SpeechRecognition в покое, и познакомится с концепцией виртуального окружения.
    Ответ написан
    4 комментария
  • Почему объект копируется, а не создаётся заново?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Понять разницу между объектом класса, и объектом экземпляра класса.
    2. Понять разницу между атрибутами класса и атрибутами экземпляра класса.
    Ответ написан
    Комментировать
  • Как хранить списки в бд?

    Maksim_64
    @Maksim_64
    Data Analyst
    Если использовать реляционные базы данных то делить на таблицы и описывать связи, предварительно избавившись от списков, на уровне пандаса, переформатировав (распрямив) датафрейм, метод explode например поможет избавится от списков. В целом одна и та же информация, может быть представлена в разном виде и в реляционных бд предпочтительнее (но не обязательно) иметь простые типы данных.

    Использовать не реляционные базы данных, они больше подходят если данные имеют вложенную структуру и простым переформатированием не обойтись.

    Если тебя все устраивает и тебе удобно работать с фреймом, но хочется иметь такое представление информации только не в памяти, а на диске. Можешь использовать например сериализацию, метод для фреймаto_pickle, и соответственно read_pickle для чтения.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Проблема в типах данных cofe и flor - строки, а должны быть int.
    cofe = int(input('Сколько вы хотите кофе?: '))
    flor = int(input('Введите на каком вы этаже:'))

    Исключения не выходит из-за логического and if cofe in [1, 2, 3] and flor >= 100: он оценивает первое условие как False и не переходит ко второму.
    Ответ написан
    1 комментарий
  • Стоит ли идти на практику в компанию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Совместить плюсы первого и второго варианта. Идти на стажировку и развиваться самому. Улучшением текущих и получением новых навыков, занимаются и уже работающие опытные специалисты, а у тебя все еще впереди. Зовут в какую то компанию иди, уйти можно всегда, плохо когда никуда не зовут.
    Ответ написан
    Комментировать
  • Как хранить данные таблицы содержащие описание множества товаров без ошибки "ValueError: All arrays must be of the same length"?

    Maksim_64
    @Maksim_64
    Data Analyst
    Все очень просто, когда ты пытаешься создать фрейм, у тебя списки разной длинны получаются. Вот код который выдаст точно такую же ошибку.
    (
        pd.DataFrame({
            'A':[1,2,3],
            'B':[100,200]
        })
    )

    А вот исправленная версия кода
    (
        pd.DataFrame({
            'A':pd.Series([1,2,3]),
            'B':pd.Series([100,200])
        })
    )
    Не достающий элемент он заполнит пропущенным значением.
    Ответ написан
    1 комментарий
  • Как настроить del в python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну класс чуть переделать желательно бы. У тебя аргументы хранятся как кортеж (не мутабельный объект). Сменить для начала на список (мутабельный тип), и затем определить подходящий дандер метод. Например как то так.
    class MyClass():
        def __init__(self, *args):
            self.args = list(args)  
    
        def __delitem__(self, key):
            if key in self.args:
                self.args.remove(key)
    
    example = MyClass('ab', '12', 100, None)
    print(example.args)
    del example['12']
    print(example.args)

    Ну и там покрыть исключением если ключа нет и т.д.
    Ответ написан
    1 комментарий
  • Как узнать какое будет следующее число?

    Maksim_64
    @Maksim_64
    Data Analyst
    "Справедливая" фифти/фифти монетка подброшена 4 раза, так получилось, что все 4 раза выпал орел. Что же будет, при 5 броске? все также фифти/фифти. То что было "до" никак не влияет на вероятность "следующего" события.

    В казино и прочих ситуациях где имеют место повторяющееся события без изменения пространства выборки уместно говорить об ожидаемой величине и конвергенции (схождению практической ожидаемой величине к теоретической). Но не как не о "следующем" событие, оно не зависимо от прошлого.
    Ответ написан
    Комментировать