我有一个numpy数组,像这样:
array([[ 1, 17, 33, ..., 28, 9, 22],
[ 3, 11, 1, ..., 25, 45, 14],
[ 3, 11, 1, ..., 21, 23, 5],
...,
[20, 6, 27, ..., 43, 15, 14],
[27, 6, 39, ..., 37, 17, 2],
[ 3, 11, 8, ..., 27, 35, 32]], dtype=int32)
从这里,我想过滤掉值4出现在索引10或之前的行。
例如[1,2,3,4,...,34,35] -过滤器,因为值4出现在索引3处,索引3在索引10之前
例如[35,34,33,32…,4,3,2,1] -保持,因为值4出现在索引10之后。
使用numpy masking实现这种过滤的方法是什么?
2条答案
按热度按时间nnsrf1az1#
你可以试试这个:
输出:
pnwntuvh2#
这里有一种方法,关键位是
[4 not in i for i in vals[:,:10]]
,它通过遍历每行前10个元素的视图来创建掩码。其应产生: