最近在学习用python进行数据分析,在用seaborn画热力图的时候,出现报错:Cannot cast array data from dtype(‘int64’) to dtype(‘int32’) according to the rule ‘safe’。在网上找了好久,终于解决了。
参考链接
我是在Windows环境下,用专业版pycharm中的jupyter notebook做数据分析时报的错,感觉是数值类型转换的问题,但是用astype转换了之后还是不起作用,之后总算在GitHub上找到了答案,具体做法如下:
我们首先进入我们安装的python路径下面,进入"\python\Lib\site-packages\seaborn",我的完整路径是"E:\python\Lib\site-packages\seaborn",之后,找到文件algorithms.py,用pycharm打开,定位到第84行,你的内容应该是这样的:
然后,将84行进行修改:
resampler = integers(0, n, n, dtype=np.int_)
修改之后是这样的:
之后保存退出。
回到出问题的那个jupyter notebook页面,重启kernel,我的就是按这个按钮:
红色方块右边的按钮,之后从上到下依次执行一遍之前的程序,发现没有再报错,这就解决了。大家可以做一个参考。
另外,有人说用的anaconda出现了此类错误,解决方法是:安装numpy+mkl,不过我找这个来做没有起作用,大家可以做个参考。