我一直在寻找这种类型问题的解决方案:例如(因为我的真正问题更复杂):
import numpy
a=[numpy.array([1,2]),numpy.array([2,2]),numpy.array([3,2]),numpy.array([4,2])]
b=[numpy.array([2,2]),numpy.array([3,2]),numpy.array([6,2]),numpy.array([5,2]),numpy.array([5,2])]
ya=numpy.array([1,2,3,4])
size_a=len(a)
size_b=len(b)
yb=numpy.empty((size_b,1))
yb.fill(numpy.nan)
for i in xrange(size_b):
for j in xrange(size_a):
if numpy.array_equiv(yb,ya):
ya[i]=yb[j]
我只想用匹配 b 的一个元素的元素的索引的 ya 值填充 yb。由于 yb 比 ya 长,因此 yb 在循环末尾包含“nan”是正常的。下面的代码需要很长时间才能继续。事实上我不知道它是否有效,因为我没有等待循环结束......
在实际情况下,ya 和 yb 更长:7007 和 3525
还有其他方法可以实现我的目标吗?