过滤2D numpy数组

发布于 2021-01-29 14:09:59

我想要一个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]

如何在第一个值上过滤并保留另一个值?

关注者
0
被浏览
186
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您应该仅在 第一 列上执行条件:

    x_displayed = xy_dat[((xy_dat **[:,0]** > min) & (xy_dat **[:,0]** < max))]
    

    我们在这里构造一个视图,其中仅考虑带有的第一列xy_dat[:,0]。现在检查此1d是否在边界之间,我们构造一个应保留的行的 1D
    布尔数组,现在我们将其用作xy_dat[..]参数中的项来选择这些行。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看