【发布时间】:2021-04-27 08:32:34
【问题描述】:
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 的相关矩阵。
另外...
- 我的阵列将是一维的。
- 我知道
pandas.DataFrame().corr()会做到这一点,但我想使用numpy.Array()做到这一点,以保证运行时间。
【问题讨论】:
标签: python numpy correlation