python - 从 numpy 数组的一列中减去

标签 python arrays 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]]

关于python - 从 numpy 数组的一列中减去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49097944/

相关文章:

python使用 "template list"创建新列表

javascript - 将数组元素复制和复制到新元素的最优化方法

包含数组的 PHP 常量?

python - "or" bool 值在内联 "if"语句中

python按顺序读取多个文件

ios - 数组项在 IOS 中显示错误

python - 当兴趣点位于图像边缘时如何裁剪 3D 图像?

python - 如果值位于列表中,则将条件列添加到数据框

python - 标量的奇怪 numpy 划分行为

python - 如何获得 Python 3.7 新的数据类字段类型?