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

2024-05-23 17:40:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找最优雅的方法来应用两个矩阵之间的统计函数(某种映射/一对一操作)。下面是我应用于两个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)

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


Tags: 方法函数datastats矩阵matrixhist形状
1条回答
网友
1楼 · 发布于 2024-05-23 17:40:54

您的示例似乎已经出现在文档中,请参见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])

应该工作:)

相关问题 更多 >