我想要一个numpy 2D ndarray的子数组(在最小和最大之间)
xy_dat = get_xydata() x_displayed = xy_dat[((xy_dat > min) & (xy_dat < max))]
最小值和最大值是浮点数,以便与数组xy_dat的第一个值进行比较
xy_dat是2D 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 **[:,0]** > min) & (xy_dat **[:,0]** < max))]
我们在这里构造一个视图,其中仅考虑带有的第一列xy_dat[:,0]。现在检查此1d是否在边界之间,我们构造一个应保留的行的 1D 布尔数组,现在我们将其用作xy_dat[..]参数中的项来选择这些行。
xy_dat[:,0]
xy_dat[..]