【发布时间】:2011-03-31 19:41:29
【问题描述】:
我有一个包含 100,000 多行的二维 numpy 数组。我需要返回这些行的一个子集(并且我需要执行该操作很多 1000 次,因此效率很重要)。
一个模拟示例是这样的:
import numpy as np
a = np.array([[1,5.5],
[2,4.5],
[3,9.0],
[4,8.01]])
b = np.array([2,4])
所以...我想从 a 返回数组,其中行在第一列中由 b 标识:
c=[[2,4.5],
[4,8.01]]
当然,不同之处在于 a 和 b 中的行都更多,所以我想避免循环。另外,我玩过制作字典并使用 np.nonzero 但仍然有点难过。
提前感谢您的任何想法!
编辑:请注意,在这种情况下,b 是标识符而不是索引。这是一个修改后的例子:
import numpy as np
a = np.array([[102,5.5],
[204,4.5],
[343,9.0],
[40,8.01]])
b = np.array([102,343])
我想回来:
c = [[102,5.5],
[343,9.0]]
【问题讨论】: