我有一些使用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,但是我仍然得到同样的错误。我不确定是什么导致了这个问题,或者我是如何解决这个问题的。
答案 0 :(得分:5)
来自NumPy 1.9.0的release notes:
rank
功能不推荐使用排名功能,以避免与
numpy.linalg.matrix_rank
混淆。
开发人员似乎认为可以保留“" rank"表示数组具有线性独立行的数量,而不是使用它也表示维数。
此功能不会出现在NumPy的未来主要版本中。因此,不要使用np.rank
来查找数组中的维数,而是按照警告中的建议使用数组的ndim
属性或函数np.ndim
。
如果您只是想暂时取消警告,warnings
模块允许您忽略这些消息。