我有两个numpy数组a和b。我想比较包含时间序列数据的第0列的两个numpy数组。我想创建一个新的numpy数组,其中第0列的排序时间序列及其相关的值随时间变化。如果未找到任何值,则将null插入数据。示例
enum
这样做的任何技巧......
答案 0 :(得分:1)
可能有一种更简单的方法,但这种方法有效:
# rows with common first columns
c1 = [(x, a[a[:,0]==x][0,1], b[i,1]) for i,x in enumerate(b[:,0]) if x in a[:,0]]
# rows of a not in b
c2 = [(x, a[i,1], np.nan) for i,x in enumerate(a[:,0]) if x not in b[:,0]]
# rows of b not in a
c3 = [(x, np.nan, b[i,1]) for i,x in enumerate(b[:,0]) if x not in a[:,0]]
# combine and sort
c4=np.vstack((c1,c2,c3))
c5=c4[c4[:,0].argsort()]
print c5