python二维数组筛选_Python numpy按条件过滤二维数组

使用numpy的in1d方法高效筛选二维数组中符合条件的行。示例中,从包含50000行、10列的数据中,根据指定列表过滤出特定列匹配的行。
摘要由CSDN通过智能技术生成

Python newbie here, I have read Filter rows of a numpy array? and the doc but still can't figure out how to code it the python way.

Example array I have: (the real data is 50000 x 10)

a = numpy.asarray([[2,'a'],[3,'b'],[4,'c'],[5,'d']])

filter = ['a','c']

I need to find all rows in a with a[:, 1] in filter. Expected result:

[[2,'a'],[4,'c']]

My current code is this:

numpy.asarray([x for x in a if x[1] in filter ])

It works okay but I have read somewhere that it is not efficient. What is the proper numpy method for this?

Edit:

Thanks for all the correct answers! Unfortunately I can only mark one as accepted answer. I am surprised that numpy.in1d is not turned up in google searchs for numpy filter 2d array.

解决方案

You can use a b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值