过滤二维 numpy 数组
Filter a 2D numpy array
我想要一个 numpy 2D ndarray 的子数组(在最小值和最大值之间)
xy_dat = get_xydata()
x_displayed = xy_dat[((xy_dat > min) & (xy_dat < max))]
最小值和最大值是浮点数,以便与数组的第一个值进行比较xy_dat
xy_dat 是一个二维 numpy 数组:
[[ 735964. 1020. ]
[ 735964.04166667 1020. ]
[ 735964.08333333 1020. ]
...,
[ 736613.39722222 1095. ]
[ 736613.40416667 1100. ]
[ 736613.41111111 1105. ]]
x_displayed 已正确过滤,但我丢失了第二个值(它现在是一维数组):
[ 735964.04166667 735964.08333333 735964.125
...,
736613.39027778 736613.39722222 736613.40416667]
如何过滤第一个值并保留另一个值?
您应该只在 第一个 列上执行条件:
x_displayed = xy_dat[((xy_dat<b>[:,0]</b> > min) & (xy_dat<b>[:,0]</b> < max))]
我们在这里做的是构建一个视图,我们只考虑带有 xy_dat[:,0]
的第一列。现在检查这个 1d 是否在边界之间,我们构造一个 1D 我们应该保留的行的布尔数组,现在我们通过将这些行用作 xy_dat[..]
参数.
我想要一个 numpy 2D ndarray 的子数组(在最小值和最大值之间)
xy_dat = get_xydata()
x_displayed = xy_dat[((xy_dat > min) & (xy_dat < max))]
最小值和最大值是浮点数,以便与数组的第一个值进行比较xy_dat
xy_dat 是一个二维 numpy 数组:
[[ 735964. 1020. ]
[ 735964.04166667 1020. ]
[ 735964.08333333 1020. ]
...,
[ 736613.39722222 1095. ]
[ 736613.40416667 1100. ]
[ 736613.41111111 1105. ]]
x_displayed 已正确过滤,但我丢失了第二个值(它现在是一维数组):
[ 735964.04166667 735964.08333333 735964.125
...,
736613.39027778 736613.39722222 736613.40416667]
如何过滤第一个值并保留另一个值?
您应该只在 第一个 列上执行条件:
x_displayed = xy_dat[((xy_dat<b>[:,0]</b> > min) & (xy_dat<b>[:,0]</b> < max))]
我们在这里做的是构建一个视图,我们只考虑带有 xy_dat[:,0]
的第一列。现在检查这个 1d 是否在边界之间,我们构造一个 1D 我们应该保留的行的布尔数组,现在我们通过将这些行用作 xy_dat[..]
参数.