8

我有一些使用 numpy 的 python 代码,并且已经成功运行了一年或更长时间。我上周突然收到以下错误:

/usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py:2507: VisibleDeprecationWarning: `rank` is deprecated; use the `ndim` attribute or function instead. To find the rank of a matrix see `numpy.linalg.matrix_rank`.
  VisibleDeprecationWarning)

我在网上找不到太多信息,但我发现这是由于旧版本的 scipy 中的错误造成的(尽管我的代码实际上并没有直接使用 scipy)。我已经使用 numpy 1.9.2 和 scipy 0.15.1 升级到 python 2.7.9,但是我仍然遇到同样的错误。我不确定是什么原因造成的,或者我如何解决这个问题。

4

1 回答 1

6

从NumPy 1.9.0的发行说明中:

rank功能

rank 函数已被弃用,以避免与numpy.linalg.matrix_rank.

似乎开发人员认为保留“rank”一词来表示数组具有的线性独立行数是合适的,而不是用它来表示维数。

此功能不会出现在 NumPy 的主要未来版本中。因此,不要使用np.rank查找数组中的维数,而是按照警告中的建议使用ndim数组或函数的属性np.ndim

如果您现在只是想抑制警告,该warnings模块允许您忽略这些消息。

于 2015-04-20T17:27:40.370 回答