相关疑难解决方法(0)

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

我有一些数据,我从一个h5文件读取作为一个numpy数组,我正在进行一些分析.对于上下文,数据绘制光谱响应曲线.我正在索引数据(以及我为x轴做的后续数组)以获取特定值或值范围.我没有做任何复杂的事情,即使是我正在做的小数学也是非常基础的.但是,我在许多地方收到以下警告错误

"VisibleDeprecationWarning:布尔索引与维度0的索引数组不匹配;维度为44但对应的布尔维度为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]
Run Code Online (Sandbox Code Playgroud)

arrays warnings numpy h5py

7
推荐指数
2
解决办法
8227
查看次数

使用两个索引在Numpy中进行逻辑索引,如MATLAB中所示

如何使用Numpy复制在MATLAB中完成的索引?

X=magic(5);
M=[0,0,1,2,1];
X(M==0,M==2)
Run Code Online (Sandbox Code Playgroud)

返回:

ans =
  8
 14
Run Code Online (Sandbox Code Playgroud)

我发现在Numpy中这样做是不正确的,因为它不会给我相同的结果..

X = np.matrix([[17, 24,  1,  8, 15],
        [23,  5,  7, 14, 16],
        [ 4,  6, 13, 20, 22],
        [10, 12, 19, 21,  3],
        [11, 18, 25,  2,  9]])

M=array([0,0,1,2,1])
X.take([M==0]).take([M==2], axis=1)
Run Code Online (Sandbox Code Playgroud)

因为我得到:

 matrix([[24, 24, 24, 24, 24]])
Run Code Online (Sandbox Code Playgroud)

在numpy中使用两个索引进行逻辑索引的正确方法是什么?

python indexing matlab numpy

2
推荐指数
1
解决办法
3340
查看次数

标签 统计

numpy ×2

arrays ×1

h5py ×1

indexing ×1

matlab ×1

python ×1

warnings ×1