Numpy, Частота переменных пар в наблюдениях - PullRequest
1 голос
/ 27 июня 2019

У меня есть массив массивов MxN 2d «A», где M - количество наблюдений, а N - количество изучаемых переменных.

Каждая запись в A может быть либо 1, либо 0, 1 обозначает наличие переменной в этом наблюдении, а 0 обозначает отсутствие этой переменной.

Я хотел бы создать NxNматрица взаимных частот «Б», с точки зрения наличия переменных.Запись индексов [i, j] в «B» будет относиться к числу строк в «A», где и переменная i, и переменная j присутствовали вместе.

Например:

Матрица A имеет 4 наблюдения и 3 переменные:

array([[1, 1, 0],
       [1, 1, 0],
       [0, 1, 1],
       [1, 0, 0]])

Создание B даст:

array([[3, 2, 0],
       [2, 3, 1],
       [0, 1, 1]])

Что было бы хорошим способом для этого?Спасибо.

1 Ответ

4 голосов
/ 27 июня 2019

Вы можете использовать matmul для умножения транспонирования матрицы A на матрицу A, в результате чего вы получите желаемый ответ.

a = np.array(
    [[1, 1, 0],
     [1, 1, 0],
     [0, 1, 1],
     [1, 0, 0]]
)

>>> np.matmul(a.T, a)
array([[3, 2, 0],
       [2, 3, 1],
       [0, 1, 1]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...