我有一个2-D numpy数组,有100,000行.我需要返回这些行的子集(我需要执行该操作数千次,因此效率很重要).
一个模拟示例是这样的:
import numpy as np
a = np.array([[1,5.5],
[2,4.5],
[3,9.0],
[4,8.01]])
b = np.array([2,4])
所以…我希望从第一列中标识的行返回数组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]]