python 显示大熊猫和具有缺失值的numpy之间的协方差估计的不同方法。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 显示大熊猫和具有缺失值的numpy之间的协方差估计的不同方法。相关的知识,希望对你有一定的参考价值。

# =============================================================================
# NUMPY VS PANDAS: DIFFERENT ESTIMATION OF COVARIANCE IN PRESENCE OF NAN VALUES
# =============================================================================
# data with nan values
M = np.random.randn(10,2)
# add missing values
M[0,0] = np.nan
M[1,1] = np.nan

# Covariance matrix calculations
# ==============================
# numpy
# -----
masked_arr = np.ma.array(M, mask=np.isnan(M))
cov_numpy = np.ma.cov(masked_arr, rowvar=0, allow_masked=True, ddof=1).data

# pandas
# ------
cov_pandas = pd.DataFrame(M).cov(min_periods=0).values

# Homemade covariance coefficient calculation
# (what each of them is actually doing)
# =============================================
# select elements to estimate the element 0,1 in the covariance matrix
x = M[:,0]
y = M[:,1]

mask_x = ~np.isnan(x)
mask_y = ~np.isnan(y)
mask_common = mask_x & mask_y

# numpy
# -----
xn = x-np.mean(x[mask_x])
yn = y-np.mean(y[mask_y])
cov_np = sum(a*b for a,b,c in zip(xn,yn, mask_common) if c)/(np.sum(mask_common)-1)

# pandas
# ------
xn = x-np.mean(x[mask_common])
yn = y-np.mean(y[mask_common])
cov_pd = sum(a*b for a,b,c in zip(xn,yn, mask_common) if c)/(np.sum(mask_common)-1)

以上是关于python 显示大熊猫和具有缺失值的numpy之间的协方差估计的不同方法。的主要内容,如果未能解决你的问题,请参考以下文章

合并两个具有共同值的熊猫数据框,这些数据框在一个数据框中显示为列,而在另一个数据框中显示为行

熊猫:使用最后可用的填充缺失值

​一文看懂数据清洗:缺失值、异常值和重复值的处理

熊猫重新索引仅对具有唯一值的索引对象有效

如何通过熊猫或火花数据框删除所有行中具有相同值的列?

数据预处理之缺失值的处理