[英]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.