【发布时间】:2021-11-03 14:09:15
【问题描述】:
我有两个数组 A 和 B。现在让它们都是一维的。
对于A 中的每个元素,我需要B 中与A 中的元素最匹配的元素的索引。
我可以使用列表表达式解决这个问题
import numpy as np
A = np.array([ 1, 3, 1, 5 ])
B = np.array([ 1.1, 2.1, 3.1, 4.1, 5.1, 6.1 ])
indices = np.array([ np.argmin(np.abs(B-a)) for a in A ])
print(indices) # prints [0 2 0 4]
print(B[indices]) # prints [1.1 3.1 1.1 5.1]
但是这种方法对于大数组来说真的很慢。
我想知道是否有更快的方法利用优化的 numpy 函数。
【问题讨论】:
标签: python arrays performance numpy indexing