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

使用Numpy编写函数返回所有元素完全唯一的行(禁止使用循环)

用Numpy筛选元素全不重复的行(无循环实现)

以下是满足需求的Numpy函数实现,完全基于向量化操作,未使用任何循环:

import numpy as np

def get_unique_element_rows(A):
    # 对每行排序,让重复元素相邻排列
    sorted_row = np.sort(A, axis=1)
    # 检查每行是否存在相邻重复元素
    has_dup = np.any(sorted_row[:, 1:] == sorted_row[:, :-1], axis=1)
    # 筛选出无重复元素的行
    return A[~has_dup]

实现思路

  1. 排序归并重复元素:通过np.sort对数组每行进行排序,使同一行内的重复元素相邻,便于后续检测。
  2. 检测重复元素:对比每行相邻位置的元素,生成布尔矩阵标记重复位置;再用np.any沿行方向判断该行是否存在重复。
  3. 筛选目标行:对标记重复的布尔数组取反,以此为索引从原数组中筛选出所有元素互不相同的行。

示例验证

示例1

A = np.array([
    [1, 2, 3],
    [4, 4, 4],
    [5, 6, 6]])
print(get_unique_element_rows(A))

输出:

array([[1, 2, 3]])

示例2

A = np.arange(9).reshape(3, 3)
print(get_unique_element_rows(A))

输出:

array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:55:23