簡體   English   中英

Numpy刪除符合條件的多行

[英]Numpy delete multiple rows matching criteria

我有一個numpy數組的結構

sb = np.genfromtxt(open('HomePage/TodayList.txt', 'rb'),
                   delimiter=',', skiprows=0,
                   dtype=[('DataBase', np.str_, 16), ('Mode', np.str_, 16),
                          ('SMB', np.str_, 16),('Desc', np.str_, 128), 
                          ('Res', np.str_, 16), ('RightCnt', np.float64), 
                          ('PercentCnt', np.float64), ('ModelType', np.float64)])

可以通過名稱'PercentCnt'訪問的第6列'PercentCnt'包含從0到50的數字第7列'ModelType'包含從0到5的數字,因此我需要刪除或刪除符合這些條件'PercentCnt'<50數組行'PercentCnt'<50'ModelType'<2

條件

sb['PercentCnt'] >= 50

保持這個列和條件的條件

sb['ModelType'] >= 2

另一列是相同的。

您可以將這些與np.logical_and結合使用:

keep = np.logical_and(sb['PercentCnt'] >= 50, sb['ModelType'] >= 2)

最后,只需保留您希望保留的行:

sb[keep]

您可以通過使用PercentCntModelType的列式比較以及使用np.logical_and連接來查找符合條件的所有行。 這樣做,你實際上復制了所有其他行,而不是刪除你想要刪除的行,但效果是相同的。

sb = sb[np.logical_and(sb["PercentCnt"]>=50, sb["ModelType"]>=2)]

暫無
暫無

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

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