Ответы пользователя по тегу NumPy
  • Как оценить вероятность того, что среднее выборочное одного бета распределения больше среднего выборочного другого бета распределения?

    @dmshar
    Если интересует именно сравнение средних, и вы понимаете, зачем это вам нужно (Отступление - взгляните на картинки с pdf таких данных, это не нормальное и не равномерное распределение и даже не экспоненциальное распределение, которые более менее похожи между собой вне зависимости от значений параметров. Посмотрите, как pdf бета распределения меняется в зависимости даже не от самих параметров, а от их взаимоотношения) - так вот в этом случае ответ можно найти, построив доверительные интервалы средних а потом проверить их на пересечение. Ну вот, задал запрос Гууглу, получил в первых же строчках ответ:
    https://www.ipu.ru/sites/default/files/publication...
    По сути, вычисляете параметры ваших распределений, через параметры находите матожидания выборок, соответственно - их дов.интервалы и вот их сравниваете между собой. Нужны-ли такие сложности или можно ограничиться сравнения оценок параметров выборок из бета-распределения - это уже решать исследователю (т.е. вам).
    Ответ написан
    Комментировать
  • Как в NumPy из k векторов получить (k+1)-мерный массив комбинаций?

    @dmshar
    Можно еще вот так:
    import itertools
    x = [1, 2, 3]
    y = [10, 20, 30]
    z = [100, 200, 300]
    
    ar=np.array(list(itertools.product(x,y,z))).reshape(len(x),len(y),len(z),-1)


    Результат:
    array([[[[  1,  10, 100],
             [  1,  10, 200],
             [  1,  10, 300]],
    
            [[  1,  20, 100],
             [  1,  20, 200],
             [  1,  20, 300]],
    
            [[  1,  30, 100],
             [  1,  30, 200],
             [  1,  30, 300]]],
    
    
           [[[  2,  10, 100],
             [  2,  10, 200],
             [  2,  10, 300]],
    
            [[  2,  20, 100],
             [  2,  20, 200],
             [  2,  20, 300]],
    
            [[  2,  30, 100],
             [  2,  30, 200],
             [  2,  30, 300]]],
    
    
           [[[  3,  10, 100],
             [  3,  10, 200],
             [  3,  10, 300]],
    
            [[  3,  20, 100],
             [  3,  20, 200],
             [  3,  20, 300]],
    
            [[  3,  30, 100],
             [  3,  30, 200],
             [  3,  30, 300]]]])
    
    ar.shape
    (3, 3, 3, 3)
    Ответ написан
  • Можно ли на python задать распределение по четырем моментам?

    @dmshar
    Ну, если вы серьезно заинтересовались темой - то можете начать вот отсюда:
    https://www.researchgate.net/publication/315332575...
    и отсюда
    https://cyberleninka.ru/article/n/metod-podbora-na...
    А далее по ссылкам.
    Но предупреждаю, математика там суровая. И Python тут вовсе не при чем. Разве что вы напишете свою реализацию описанных в работе методов.
    Ответ написан
    Комментировать
  • Как активно менять размер окна mss numpy?

    @dmshar
    А что, у вас доступ к интернет уже отключили?
    Чем вас не устраивают ответы на ваш вопрос, которые приведены в документации к тому пакету, который вы решили пользовать?
    https://python-mss.readthedocs.io/examples.html
    Ответ написан
  • Python библиотека numpy не правильно загружает массив. Как поправить?

    @dmshar
    Потому что dump - это не запись в файл.
    Не стоить использовать инструмент, не понимая как он работает.
    В любом учебнике по numpy (если его читать, конечно) можно найти:
    Запись массива в файл - метод np.save()
    Чтение массива из фала - метод np.load()
    Ну, может еще для работы с данными в текстовом формате -numpy.savetxt() и numpy.loadtxt()
    Хотите в бинарном виде - np.tofile() и np.fromfile()
    Вот и пользуйтесь инструментами по назначению на здоровье.
    Ответ написан
    Комментировать
  • Как правильно транспонировать матрицы в numpy?

    @dmshar
    Насколько я понимаю, операция транспонирования в numpy не позволяет преобразовать вектор-строку в вектор-столбец. --- ????? Это откуда вы взяли?
    a=np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
    print(a)
    b=a.reshape(-1,1)
    print(b)


    Результат работы:
    [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15]
    [[ 1]
     [ 2]
     [ 3]
     [ 4]
     [ 5]
     [ 6]
     [ 7]
     [ 8]
     [ 9]
     [10]
     [11]
     [12]
     [13]
     [14]
     [15]]
    Ответ написан
    1 комментарий
  • Как в 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)

    все было бы на много проще.
    Ответ написан
    Комментировать
  • Как получить конкретный строки в 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]])
    Ответ написан
    Комментировать
  • NumPy как переписать алгоритм?

    @dmshar
    Ну, в пару или нет - считайте сами:

    import itertools
    import numpy as np
    many_arrays=[np.array([1,2,3]),np.array([4,5,6]), np.array([7,8,9]) ]
    many_arrays2=[np.array([1,2,3]),np.array([4,5,6]), np.array([7,8,9]) ]
    prd=itertools.product(many_arrays,many_arrays2)
    dists=[]
    for it in prd:
        dists.append([np.linalg.norm(it[0]-it[1]),it[0],it[1]])
    sorted(dists, key=lambda x: x[0])


    Результат:
    [[0.0, array([1, 2, 3]), array([1, 2, 3])],
    [0.0, array([4, 5, 6]), array([4, 5, 6])],
    [0.0, array([7, 8, 9]), array([7, 8, 9])],
    [5.196152422706632, array([1, 2, 3]), array([4, 5, 6])],
    [5.196152422706632, array([4, 5, 6]), array([1, 2, 3])],
    [5.196152422706632, array([4, 5, 6]), array([7, 8, 9])],
    [5.196152422706632, array([7, 8, 9]), array([4, 5, 6])],
    [10.392304845413264, array([1, 2, 3]), array([7, 8, 9])],
    [10.392304845413264, array([7, 8, 9]), array([1, 2, 3])]]
    Ответ написан
  • Как сделать правильно рандомную выборку без специальной функции?

    @dmshar
    Как конвертировать массивы и списки в ДатаФрейм - описано в любом руководстве по pandas.

    Двумерный список:

    import pandas as pd
    import numpy as np
    list_a = [[1,2,3,4,5],
              [6,7,8,9,10]]
    columns = ['a','b','c','d','e']
    df_a = pd.DataFrame(list_a, columns=columns)


    Массив nympy:

    pd.DataFrame(np.random.rand(3, 2), columns=['foo', 'bar'])


    Дальше комбинацией этих возможностей.

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

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

    @dmshar
    Ничего не понял из вопроса, но "победитель" по последней приведенной таблице находиться просто - группируем по "winner" и считаем сумму "electors" в группе. Потом выбираем ту группу (того кандидата) у кого эта сумма максимальна.

    Если это не ответ на ваш вопрос - уточняйте , переформулируйте и задавайте конкретный вопрос так, ,что-бы можно было понять, что именно вам не понятно.
    Ответ написан
    5 комментариев
  • Как найти t-критерий Стьюдента, используя python?

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

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

    @dmshar
    Изучайте теорию временнЫх рядов. Там все ваши вопросы решены уже давно.
    Из программных средств - библиотека scipy и statsmodels, где тоже практически все, что нужно имеется в наличии.
    Ответ написан
    Комментировать
  • За счёт чего NumPy массивы эфективнее питоновских списков?

    @dmshar
    Массивы в Numpy реализованы почти так-же как и в С++ . Главное отличие - это всегда непрерывный в оперативной памяти участок однотипных данных. За счет этих двух фундаментальных свойств и соответственно - отсутствия соответствующих проверок и преобразований, операции над элементами массивов Numpy выполняются ощутимо быстрее, чем над списками, особенно при больших объемах хранимой информации. Недостатком массивов в Numpy есть неэффективное использования оперативной памяти в случаях, если реальных элементов массиве меньше, чем задекларированный размер массива.
    Списки реализованы в виде несколько модифицированной ссылочной структуры С++. Точнее - память там выделяется блоками, доступ не прямо к элементу, а через систему ссылок и пр. Кроме того, списки это разнотипные элементы, более того - это возможно еще и списки списков или списки других составных типов данных. В общем, что-бы выполнить простую операцию, интерпретатору необходимо выполнить достаточно много проверок и переходов.
    В последних версиях реализация списков сильно оптимизирована. Тем не менее, операции с его элементами остаются более медленными, чем над элементами массивов Numpy.
    Наличие "множества полезных и удобных функций" - это уже производное от базовых отличий.
    Ответ написан