You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

借助Pandas删除数组错误值,保留重复时间t对应的最大位移x

实现方案

Pandas 方案(推荐,你已经用Pandas导入了数据,直接用原生接口最优)

有两种常用实现,适配不同场景:

  • 仅需要保留t和对应最大x两列:用groupby直接聚合取最大值
import pandas as pd

# 你的原始导入数据df示例:
# df = pd.DataFrame({'t': [1,2,3,4,5,3,1,7], 'x': [2,3,4,5,5,3,1,5]})

# 按t分组取x的最大值
res = df.groupby('t', as_index=False)['x'].max()
  • 需要保留x最大值所在行的其他字段(如果你的数据除了t、x还有别的列):先排序再去重
# 按t升序、x降序排序,保证每个t的第一条就是x最大的行
df_sorted = df.sort_values(by=['t', 'x'], ascending=[True, False])
# 按t去重,保留第一条
res = df_sorted.drop_duplicates(subset='t', keep='first')

二维数组(Numpy)方案

如果你已经把数据转成了纯numpy二维数组,可以用如下方法实现:

import numpy as np

# 示例数组,第一列为t,第二列为x
# arr = np.array([[1,2],[2,3],[3,4],[4,5],[5,5],[3,3],[1,1],[7,5]])

# 按t升序、x降序排序
sorted_arr = arr[np.lexsort((-arr[:,1], arr[:,0]))]
# 提取每个t第一次出现的索引(对应x最大的行)
_, unique_idx = np.unique(sorted_arr[:,0], return_index=True)
res_arr = sorted_arr[unique_idx]

结果验证

你的示例数据运行后输出如下,符合要求:

tx
12
23
34
45
55
75

内容的提问来源于stack exchange,提问作者Ali AlCapone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:48:03