Python 函数使用任意数量的变量计算相关矩阵

A Python function to calculate correlation matrix using the arbitrary number of variables

Python 中是否有函数使用任意数量的 Numpy 数组计算 (Pearson) 相关矩阵,同时处理这些数组中的 NaN?

import numpy as np
import numpy.ma as ma
a = np.random.random(10)
b = np.random.random(10)
c = np.random.random(10)
a[np.random.randint(0, 10, 2)] = np.nan
b[np.random.randint(0, 10, 2)] = np.nan
c[np.random.randint(0, 10, 2)] = np.nan
ma.corrcoef(ma.masked_invalid(a), ma.masked_invalid(b))

ma.corrcoef() 接近我要找的东西,但它只需要两个数组; ma.corrcoef(ma.masked_invalid(a), ma.masked_invalid(b))的结果与ma.corrcoef(ma.masked_invalid(a), ma.masked_invalid(b), , ma.masked_invalid(c))相同。我想传递许多数组并创建相关矩阵。例如,a_ideal_function(array1, array2, array3, array4, ..., arrayN) 将创建一个大小为 NxN 的相关矩阵。

另外...

我建议在 [ ] 中传递三个 'numpy.ma.core.MaskedArray' 元素,这将按预期输出 3x3 相关矩阵。

具体来说,这段代码。

ma.corrcoef([ma.masked_invalid(a), ma.masked_invalid(b),ma.masked_invalid(c)])