我有一个很大的1d numpy数组Xold,其中包含给定值。根据2d numpy数组Y指定的规则,这些值将被替换: 例如:
Xold=np.array([0,1,2,3,4])
Y=np.array([[0,0],[1,100],[3,300],[4,400],[2,200]])
每当Xold中的一个值与Y[:,0]中的一个值相同时,Xnew中的新值应该是Y[:,1]中对应的值。这可以通过两个嵌套的for循环实现:
Xnew=np.zeros(len(Xold))
for i in range(len(Xold)):
for j in range(len(Y)):
if Xold[i]==Y[j,0]:
Xnew[i]=Y[j,1]
通过给出的示例,这将产生Xnew=[0,100,200,300,400]
。然而,对于大型数据集,这个过程非常缓慢。有什么更快更优雅的方法来完成这个任务吗?