NumPy
ndarray
这个问题是关于根据某些列值过滤 a 。
我有一个相当大的NumPy
ndarray
(300000、50),我正在根据某些特定列中的值对其进行过滤。我有ndtypes
,所以我可以按名称访问每一列。
第一列已命名category_code
,我需要过滤矩阵以仅返回category_code
in 中的行("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
我原来拥有的不再可访问。
有没有更好/更 Pythonic 的方式来实现相同的结果?
可能看起来像:
filtered_data = data.where({'category_code': ('A', 'B','C'})
谢谢!