我试图可视化包含0
和1
列的数据帧的稀疏性(总共是0
的90%和1
的10%)
到目前为止,我已经尝试了以下方法:
sparse_df = df[binary_feat_cols].astype(pd.SparseDtype("int", 0))
sparse_df.sparse.density
plt.figure(figsize=(10, 6))
plt.spy(sparse_df, markersize=1);
及
sparse_matrix = scipy.sparse.csr_matrix(df[binary_feat_cols].to_numpy())
plt.figure(figsize=(10, 6))
plt.spy(sparse_matrix, markersize=1);
在这两种情况下,我都能看到图像。知道我做错了什么吗
编辑:我刚刚意识到这与矩阵的形状有关,因为我尝试了以下示例:
x = np.random.randn(910, 51)
x[15, :] = 0.
x[:, 40] = 0.
plt.figure(figsize=(10, 6))
plt.spy(x, markersize = 5)
所以,问题应该是dataframe有900K行和50列,并且无法打印
我在这里检查了matplotlib.pyplot.spy,看到了
aspect
参数:所以,做
plt.spy(sparse_df, markersize=1, aspect = 'auto')
解决了我的问题。谢谢相关问题 更多 >
编程相关推荐