Numpy DeprecationWarning on boolean indexing

时间:2014-10-09 15:26:11

标签: python-2.7 numpy deprecation-warning

此代码

import numpy as np

def some_method(y, threshold):
    print type(y), y.shape, y.dtype 
    c = np.zeros(y.shape)
    c[y > threshold] = 1

结果

<type 'numpy.ndarray'> (484L,) [('target', '<f8')]
DeprecationWarning: using a boolean instead of an integer will result in an error in the future
  c[y > threshold] = 1

我在谷歌和numpy发行说明中找不到任何相关内容。我假设这是关于布尔值的索引?我不明白这将如何导致将来出现错误,我该如何解决这个问题?

Python 2.7.6(默认,2013年11月10日,19:24:24)[MSC v.1500 64位(AMD64)]在win32上

Numpy版本:1.8.0

编辑:在代码中添加了print语句,以显示数组是一个ndarray

EDIT2:从评论中可以清楚地看到,这是因为y是一个结构数组,正确的检查方法是y['target'] > threshold。但是,y可能有多列,甚至不同的列名,有没有办法灵活地使用结构化数组?

0 个答案:

没有答案