Полное отслеживание было бы неплохо.Я предполагаю, что seaborn.distplot
использует scipy.stats
для вычисления чего-либо.Ошибка возникает в
def _compute_qth_percentile(sorted, per, interpolation_method, axis):
....
indexer = [slice(None)] * sorted.ndim
...
indexer[axis] = slice(i, i + 2)
...
return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval
Так что в этой последней строке список indexer
используется для нарезки sorted
.
In [81]: x = np.arange(12).reshape(3,4)
In [83]: indexer = [slice(None), slice(None,2)]
In [84]: x[indexer]
/usr/local/bin/ipython3:1: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
#!/usr/bin/python3
Out[84]:
array([[0, 1],
[4, 5],
[8, 9]])
In [85]: x[tuple(indexer)]
Out[85]:
array([[0, 1],
[4, 5],
[8, 9]])
Использование списка слайсов работает, ноПлан заключается в амортизации в будущем.Предполагается, что индексы, включающие несколько измерений, являются кортежами.Использование списков в контексте является устаревшим стилем, который постепенно прекращается.
Поэтому разработчикам scipy
необходимо это исправить.Это не то, с чем должны сталкиваться конечные пользователи.Но пока не беспокойтесь о futurewarning
.Это не влияет на расчеты или графики.Есть способ подавления предупреждений о будущем, но я не знаю его от руки.
FutureWarning: Использование последовательности без кортежей для многомерной индексации не рекомендуется использовать `arr [tuple (seq)]`вместо` arr [seq] `