2013-04-11 105 views
2

我有一个脚本运行scikit Naive Bayes分类,这是我在linux机器上编写的。当我把它运到Windows机器,我得到一个弃用警告:在numpy中的弃用警告

DeprecationWarning:不兼容的类型进行隐式铸造...

在Linux版本

我有numpy的版本1.6.1 和在Windows numpy版本是1.7.1rc1。

将浮点列表投射到2d数组时抛出警告。 我应该忽略警告吗?它是否与numpy版本的变化有关?

铸造似乎两台机器工作正常...

感谢

+1

忽略废弃警告是自讨苦吃后...他们是有原因的,那就是他们将最有可能成为一个错误,最终。 – seberg 2013-04-11 11:54:01

回答

5

当然你应该更新你的代码,从而使警报消失。也许通过从列表中显式创建一个Numpy数组。

我想与铸造你的意思是一些自动转换,如:

array([1., 2, 3]) * [3, 4, 5] 

负责似乎是以下拉的请求,这是相对最近合并。最好的解释是在文件test_ufunc.py

https://github.com/numpy/numpy/pull/451/files

+0

无论如何,当我自己演出时我不会得到警告吗? – WeaselFox 2013-04-11 09:53:36

+0

构造一个Numpy数组不是强制转换。然而,Numpy的构造函数可能会抱怨别的。 – Eike 2013-04-11 09:56:24

+4

重点是*隐式*转换。这可能是由于像'integer_arr + = float'这样的操作,其中'integer_array + float'是一个浮点类型,由于就地操作而隐式转换。 – seberg 2013-04-11 12:01:45