“排名”的Numpy / scipy弃用警告
我有一些使用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)。 我已经升级到python 2.7.9与numpy 1.9.2和scipy 0.15.1,但我仍然得到相同的错误。 我不确定是什么原因造成的,或者我如何解决这个问题。
从NumPy 1.9.1的发行说明:
排名功能
rank函数已被弃用,以避免与numpy.linalg.matrix_rank
混淆。
看起来开发人员似乎适合保留“等级”一词来表示数组具有线性独立行的数量,而不是用它来表示维数。
此功能在NumPy未来的主要版本中不会出现。 因此,不要使用np.rank
来查找数组中的维数,而应遵循警告中的建议,并使用数组的ndim
属性或函数np.ndim
来代替。
如果您现在只想抑制警告,则warnings
模块允许您忽略消息。