python - 将函数应用于两个形状相同的 numpy 矩阵

标签 python numpy matrix correlation

我正在寻找在两个矩阵之间应用统计函数的最优雅的方法(某种映射/一二一运算)。这是我的函数应用于两个 20 项长分布

stats.pearsonr(data["histograms"][0][15][2], regions_hist[0][15][2])[0]
> 0.42524395175128987

两个矩阵具有相同的形状

data["histograms"][0].shape
> (16, 3, 20)
regions_hist[0].shape
> (16, 3, 20)

我正在寻找的是一种方法

Correlations = FancyMapping(data["histograms"][0],regions_hist[0])
Correlations.shape  # matrix with the 16*3 correlations between items of both
>(16,3)

你认为有什么优雅的解决方案吗(塑造方面对我的问题很重要)?

最佳答案

看来您的示例已经在文档中,请参阅 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.vectorize.html 的底部。所以

import scipy.stats
pearsonr = np.vectorize(scipy.stats.pearsonr, signature='(n),(n)->(),()')
correlations = pearsonr(data["histograms"][0],regions_hist[0])

应该可以:)

关于python - 将函数应用于两个形状相同的 numpy 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48324935/

相关文章:

python - 如何合并列表和 csr 矩阵

c++ - opencv 的 Sysmalloc 错误

python - django gunicorn sock 文件不是由 wsgi 创建的

python - 将 numpy 数组与例如交互时如何设置迭代深度下一个?

python波浪号一元运算符作为否定numpy bool数组

python - python中的矩形脉冲序列

c++ - 如何在 C++ 中创建一个 20000*20000 的矩阵

python - 分组装箱

python - 如何提高读取大文件并将其作为下载返回的 python cgi 的性能?

python - 如何[使用 Python] 创建 SIFT 的描述符数据库?