Seaborn中使用distplot出现FutureWarning警告

7

每当我尝试使用seaborndistplot时,会出现以下警告,我似乎无法弄清楚我到底做错了什么,如果很简单,请原谅。

警告:

FutureWarning: 使用非元组序列进行多维索引已被弃用;请改用arr[tuple(seq)]而不是arr[seq]。将来这将被解释为一个数组索引,arr[np.array(seq)],这将导致错误或不同的结果。
return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval

这里有一个可重现的示例:

import numpy as np 
import pandas as pd 
import random

import seaborn as sns

kde_data = np.random.normal(loc=0.0, scale=1, size=100) # fake data
kde_data = pd.DataFrame(kde_data)
kde_data.columns = ["value"]
#kde_data.head()

现在,情节是正确的,但我一直收到上面的“警告”,使用arr[tuple(seq)]而不是arr[seq]并没有对我有太大帮助。
sns.distplot(kde_data.value, hist=False, kde=True)

enter image description here

我正在使用Jupyter,以下是模块版本:

seaborn==0.9.0
scipy==1.1.0
pandas==0.23.0
numpy==1.15.4
2个回答

9

您并没有做错什么。目前除了可能抑制这个警告信息以外,没有其他方法可以摆脱它。

这告诉您的是seaborn使用了一个scipy函数,由于最近numpy版本的更改而将来会发生变化。我预计在未来的scipy版本中,该函数将被更改为与任何过去或未来的numpy版本良好配合。在此之前,您可以决定接受这个警告。它不会以任何方式恶化绘图结果。


隐藏警告可能会导致意外行为(有时更严重,例如算法的不收敛)。软件包作者之所以放置警告是有原因的。这里有一种方法可以避免这个特定的问题。 - Oleg Melnikov

0
这个帖子中,他们指出这是一个scipy的问题,升级到scipy>=1.2版本应该可以解决这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接