我有一个相当大的一维 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]
。
然而,对于大型数据集,此过程相当慢。什么是更快、更优雅的方式来完成这项任务?