arrays - 可见的弃用警告...?

标签 arrays numpy warnings h5py

我有一些数据从Im从h5文件中读取为一个numpy数组,并且正在做一些分析。就上下文而言,数据绘制了光谱响应曲线。我正在索引数据(以及为x轴创建的后续数组)以获取特定值或值范围。我没有做任何复杂的事情,即使我正在做的小数学也很基础。但是我在许多地方收到以下警告错误

“VisibleDeprecationWarning: bool 索引与沿维度0的索引数组不匹配;维度为44,但相应的 bool 维度为17”

即使我检查时得到的输出是正确的输出。

有人可以解释此警告的含义,以及我是否需要比现在更关注它?

我不确定示例代码是否可以对此做很多说明,但是看到它是在索引和切片数组时发生的警告,总之,这是一些警告:

data = h5py.File(file,'r')
dset = data['/DATA/DATA/'][:]
vals1 = dset[0]

AVIRIS = numpy.linspace(346.2995778, 2505.0363678, 432)
AVIRIS1 = AVIRIS[vals1>0]
AVIRIS1 = AVIRIS[vals1<1]

最佳答案

关于此警告的先前问题:

VisibleDeprecationWarning: boolean index did not match indexed array along dimension 1; dimension is 2 but corresponding boolean dimension is 1

https://stackoverflow.com/a/34296620/901925

我认为这是numpy 1.10中的新功能,并且是使用比数组短的 bool 索引的结果。我没有安装该版本,因此无法举一个例子。但是在以前的numpy中

In [667]: x=np.arange(10)
In [668]: ind=np.array([1,0,0,1],bool)
In [669]: ind
Out[669]: array([ True, False, False,  True], dtype=bool)
In [670]: x[ind]
Out[670]: array([0, 3])

即使indx短,也可以正常运行。它有效地用ind填充False。我认为较新的版本会继续进行计算,但是会发出此警告。我需要找到一个可以更改此内容的提交或一个讨论它的SO问题。

可以禁止显示警告-请参见侧栏。但是您确实应该检查有问题的数组的形状。它们匹配吗,还是 bool 索引太短?你能纠正吗?

Github讨论

https://github.com/numpy/numpy/issues/4980 bool 数组索引静默失败#4980

拉取要求

https://github.com/numpy/numpy/pull/4353 DEP:弃用形状不匹配的 bool 数组索引#4353

要禁止显示警告,请使用类似以下内容的内容:
import warnings
warnings.filterwarnings("ignore", category=np.VisibleDeprecationWarning) 

您可能需要调整类别名称以使其正确。

关于arrays - 可见的弃用警告...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465176/

相关文章:

python - 在python中获取具有相同值的所有行?

python - 从给定的 n 个点中选择最远的 k 个点

c++ - 系统头文件重新定义宏: how do I tell gcc to ignore?

r - 如何更改警告设置?

去 vert : "composite literal uses unkeyed fields" with embedded types

javascript - 访问对象 ID 的更短方法?

arrays - 将字符串数组拆分为字符串数组的数组

java - 处理数组中的重叠数字

java - 数组方法和命令

python - 使用 gdal 将数组转换为 tiff 光栅图像