使用numpy获取2-D索引的子集

rd11

我的二维数据包含错误值(0表示错误)。我的目标是将每个不正确的值替换为最近的不坏的邻居。

SciPyNearestNDInterpolator似乎是实现此目的的好方法。在二维情况下,它接受(点数)x 2的索引数组和(点数)x 1的对应值数组作为插值对象。

因此,我需要获取索引和值的子集:那些是“好”的索引和值。下面的代码实现了这一点,但coordinates = array(list(ndindex(n_y, n_x)))where(values != 0)[0]都凌乱。有没有更清洁的方法可以做到这一点?

# n_y and n_x are the number of points along each dimension.

coordinates = array(list(ndindex(n_y, n_x)))

values = data.flatten()
nonzero_ind = where(values != 0)[0]

nonzero_coordinates = coordinates[nonzero_ind, :]
nonzero_values = values[nonzero_ind]

谢谢。

亨利·戈默索尔
nonzero_coordinates = np.argwhere(data != 0)
nonzero_values = np.extract(data, data)

或简单地:

nonzero_values = data[data!=0]

我最初宁愿错过这种明显的nonzero_values方法,但要感谢@askewchan的意见。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从R中的子集获取索引

通过使用元组列表作为索引从numpy 2d数组中获取值

匹配两个2D数组的行并使用numpy获取行索引图

子集矩阵,如果索引无效,则获取NA

获取索引前 n 天的行子集

获取子集中元素的索引

使用数组索引的numpy数组的2D索引

子集2D numpy数组

使用行/列索引对栅格进行子集

在for循环或函数中使用子集索引列表

numpy 2d数组,获取指定列索引等于1的行的索引

Numpy 2D-Array-使用索引数组设置值

在Matplotlib中使用numpy索引获取日期

numpy:将1d数组的元素的索引作为2d数组获取

如何从python中的列表索引获取列表子集

带有分层索引的选择-获取数据帧的子集

numpy 2D数组:获取所有已连接并共享相同值的条目的索引

如何通过索引数组获取2d numpy数组的行

使用行索引的2D数组进行numpy高级索引,而无需广播输出

使用2d索引对类似于numpy ndarray的数据帧进行索引

通过索引对行进行子集化-dt [-c(1,2,3),]与子集的等效项

如何使用collect rect或其他方法从鼠标坐标获取对象(或其在NumPy数组中的索引)?(Pygame 2D)

使用多索引条件选择数据帧子集

蟒蛇:使用多级索引子集数据帧

使用切片的布尔索引的熊猫子集

使用索引值选择熊猫数据框的子集

r中的data.table:使用列索引的子集

使用列索引切片的串联子集df

使用索引对data.table中的行进行子集化