[英]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]
您可以通過使用PercentCnt
和ModelType
的列式比較以及使用np.logical_and
連接來查找符合條件的所有行。 這樣做,你實際上復制了所有其他行,而不是刪除你想要刪除的行,但效果是相同的。
sb = sb[np.logical_and(sb["PercentCnt"]>=50, sb["ModelType"]>=2)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.