这个问题询问的是如何根据某些列的值筛选一个
我有一个相当大的
第一列名为
结果需要是另一个
这是我现在的做法:
NumPy
ndarray
。我有一个相当大的
NumPy
ndarray
(300000, 50),我需要根据某些特定列的值对其进行筛选。我使用了 ndtypes
,这样我就可以通过名称访问每一列。第一列名为
category_code
,我需要过滤矩阵,只返回 category_code
在 ("A", "B", "C")
中的行。结果需要是另一个
NumPy
ndarray
,其列仍然可以通过 dtype
名称访问。这是我现在的做法:
index = numpy.asarray([row['category_code'] in ('A', 'B', 'C') for row in data])
filtered_data = data[index]
列表推导式就像:
list = [row for row in data if row['category_code'] in ('A', 'B', 'C')]
filtered_data = numpy.asarray(list)
由于我最初使用的dtypes
不再可访问,所以无法正常工作。
有没有更好/更符合Python风格的方法来实现相同的结果?
可能会像这样:
filtered_data = data.where({'category_code': ('A', 'B','C'})
谢谢!
index =
这一行使用row['category_code']
而不是data['category_code']
,对吗? - Danica