【发布时间】:2018-12-28 09:15:28
【问题描述】:
我有一个数据库查询的结果作为 nd 数组。我想通过结果第一列中的 ID 列表过滤结果。
Query result: Filter: Desired outcome:
ID | Field ID ID | Field
---+------ --- ---+------
0 | Asd 1 1 | Wat
1 | Wat 2 2 | Cat
2 | Cat
6 | Yep
当然可以使用列表推导:
out = [i for i in result if i[0] in filter]
但我正在寻找 NumPy 类型的解决方案,例如 np.where。 并且此方法返回 NumPy 数组列表,而不是 ndarray。所以,完全无法使用。
你知道这种方法吗?
编辑:用于实验的沙盒
如果您想尝试,这里是复制粘贴的代码。
a = np.array([[0, 'asd'],[1, 'wat'],[2, 'cat'],[6, 'yep']])
b = np.array([1, 2], dtype=str)
out = np.array([i for i in a if i[0] in b])
> array([['1', 'wat'], ['2', 'cat']])
【问题讨论】:
-
你忘了在你的例子中提供
result。 -
@Kefeng91 糟糕,数组名称现已修复。
标签: python arrays numpy filter numpy-ndarray