python-3.x - seaborn - heatmap - 31,000 方阵 sns.heatmap 死亡
问题描述
问题
seaborn 热图jupyter notebook
以python
脚本形式消亡。
文献综述
seaborn failed是我能找到的最接近类似问题的问题,但这不是完全相同的问题。我的只是一个独立的 seaborn 不会打印热图问题。
症状
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
M=np.ones((32000,32000))
ax = sns.heatmap(M)
plt.show()
使用上面的代码,我kernel stopped running
在 jupyter notebook 中收到一条消息,[1]+ Killed: 9 python bible_ai_construction.py
在等待热图 20 分钟后在我的终端中收到一条消息。
总体目标
我希望能够调查数据集中每个状态与其他状态的关系。我提供了每个状态,以及与之相关的所有其他状态的列表,下面的小例子:
d={'a':['b','c','e'],'b':['a','c'],'c':['a'],'d':['a','e','b'],'e':['a','c']}
#set the new dictionary to one_hot_encoding representation
d={'a':[0,1,1,0,1],'b':[1,0,1,0,0],'c':[1,0,0,0,0],'d':[1,1,0,0,1],'e':[1,0,1,0,0]}
#construct matrix
M=np.matrix(list(map(lambda x:x, d.values())))
#apply M to seaborn heatmap, i.e., M.shape->(32000,32000)
解决方案
尺寸为 32000x32000 的矩阵将包含超过十亿个元素。在我的计算机上,这个 numpy 数组的内存增长到超过 8Gb。
Seaborn/Matplotlib 将无法绘制如此巨大的数组。
您应该对矩阵、分箱等执行一些聚合方法。
简单地绘制这么大的阵列没有任何优势,没有人能够从如此详细的图表中推断出任何信息。
推荐阅读
- fasttext - FastText 量化文档不正确?
- sharepoint - 推广 SharePoint 新闻
- javascript - 是否可以将 microsoft-graph 客户端密码放入源代码中?
- function - 在 ocaml 中使用 fun 关键字
- java - 是否可以配置 Eclipse 以突出显示 XML 中的 Java 语法?
- java - 在 Spring MVC 项目中设置默认受保护的欢迎页面
- c - 对数组中的负元素进行排序
- api - 无法使用 LinkedIn api 获取数据
- python - Python3:在 __getitem__ 实现中区分 Foo[1,2] 和 Foo[(1,2)]
- html - 在 Wordpress 上显示来自特定类别的随机帖子