Как векторизировать расчет корреляции Спирмена между 2D -массивом и эталонным 1D массивом с ScipyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как векторизировать расчет корреляции Спирмена между 2D -массивом и эталонным 1D массивом с Scipy

Сообщение Anonymous »

У меня есть матрица M с размером (37, n) и дополнительный 1D -вектор размера (37,1) < /p>
Я ищу способ вычисления корреляции Spearman между каждым образцом M и моей ссылкой, чтобы получить матрицу (N, 1) в результате. Использование для цикла я могу сделать: < /p>

Код: Выделить всё

from scipy.stats import spearmanr
import numpy as np

M = np.random
rng = np.random.default_rng()
M = rng.standard_normal((37, 100))
reference = rng.standard_normal((37, 1))

expected_result = []
for element in M.T:
expected_result.append( spearmanr(element, reference).statistic)

print(np.array(expected_result).shape)
< /code>
Это дает то, что я хочу (Shape (100,1)), но я бы хотел, чтобы он был вектором, чтобы ускорить вычисления. Я попытался использовать следующий код: < /p>

from scipy.stats import spearmanr
import numpy as np

M = np.random
rng = np.random.default_rng()
M = rng.standard_normal((37, 100))
reference = rng.standard_normal((37, 1))
res = spearmanr(M, reference)
Но res.statistic заканчивается в форме (101,101), что еще больше сбивает с толку.
Есть ли способ векторизировать это?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... y-and-a-re
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»