簡體   English   中英

過濾2D 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是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[..]參數中的項來選擇這些行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM