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

如何移除NumPy数组中的重复行并保留嵌套结构?

NumPy数组移除重复行(保留嵌套结构)

直接调用np.unique(arr)会将数组扁平化后提取唯一元素,这就是你得到一维结果的原因。要保留二维嵌套结构、按行去重,只需给np.unique指定axis=0参数:

import numpy as np

arr = np.array([[991.4, 267.3, 192.3],
                [991.4, 267.4, 192.3],
                [991.4, 267.4, 192.3],
                [993.5, 268. , 192.6],
                [993.5, 268. , 192.6],
                [993.5, 268.1, 192.6]])

# 按行去重,保留二维结构
unique_arr = np.unique(arr, axis=0)
print(unique_arr)

输出结果:

array([[991.4, 267.3, 192.3],
       [991.4, 267.4, 192.3],
       [993.5, 268. , 192.6],
       [993.5, 268.1, 192.6]])

补充:保留原数组的行顺序

默认np.unique会对结果排序,如果需要保留行在原数组中首次出现的顺序,可以结合return_index=True实现:

# 获取唯一行的首次出现索引
_, idx = np.unique(arr, axis=0, return_index=True)
# 按索引提取行,保持原顺序
unique_arr_ordered = arr[np.sort(idx)]
print(unique_arr_ordered)

输出结果(和原数组中唯一行的出现顺序一致):

array([[991.4, 267.3, 192.3],
       [991.4, 267.4, 192.3],
       [993.5, 268. , 192.6],
       [993.5, 268.1, 192.6]])

内容的提问来源于stack exchange,提问作者Spatial Digger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:25:10