从numpy数组的一列中减去

速度风格

我有一个形式的Numpy数组:

40002 1511863545
40000 1511863546
156 1511863547
40005 1511863547
40003 1511863548
40008 1511863549
340 1511863550
40011 1511863550
...

第一列是数据,第二列是时间戳。数据分为两部分,间隔为40000。

我需要两个数据集:

156 1511863547
340 1511863550
...

和:

2 1511863545
0 1511863546
5 1511863547
3 1511863548
8 1511863549
11 1511863550

我怎么能够,

  1. 根据第一列中的值拆分数据?
  2. 从第二个新数据集的第一列中减去40000(保持时间戳不变)?
斯蒂芬·劳奇

您可以使用一个相当简单的测试来做到这一点:

码:

split_data = data[:, 0] < 40000
low_data = data[split_data]
high_data = data[~split_data]
high_data[:, 0] -= 40000

测试代码:

data = np.array([
    [40002, 1511863545],
    [40000, 1511863546],
    [156, 1511863547],
    [40005, 1511863547],
    [40003, 1511863548],
    [40008, 1511863549],
    [340, 1511863550],
    [40011, 1511863550],
])
print(data)

split_data = data[:, 0] < 40000
low_data = data[split_data]
high_data = data[~split_data]
high_data[:, 0] -= 40000

print(split_data)
print(low_data)
print(high_data)

结果:

[[     40002 1511863545]
 [     40000 1511863546]
 [       156 1511863547]
 [     40005 1511863547]
 [     40003 1511863548]
 [     40008 1511863549]
 [       340 1511863550]
 [     40011 1511863550]]

[False False  True False False False  True False]

[[       156 1511863547]
 [       340 1511863550]]

[[         2 1511863545]
 [         0 1511863546]
 [         5 1511863547]
 [         3 1511863548]
 [         8 1511863549]
 [        11 1511863550]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章