2 条题解

  • 0
    @ 2026-3-26 17:42:47

    NUMPY030 题解:找共同元素

    题目

    如何找出两个数组中的共同元素?

    解题思路

    使用 np.intersect1d() 函数找两个数组的交集。

    代码

    import numpy as np
    Z1 = np.random.randint(0, 10, 10)
    Z2 = np.random.randint(0, 10, 10)
    print(np.intersect1d(Z1, Z2))
    

    代码详解

    1. np.random.randint(0, 10, 10) —— 创建 10 个 [0, 10) 的随机整数
    2. np.intersect1d(Z1, Z2) —— 返回两个数组共有的元素

    示例

    Z1 = [3, 1, 7, 2, 9, 1, 5, 0, 8, 4]
    Z2 = [6, 2, 1, 5, 9, 3, 7, 8, 0, 2]
    
    交集 = [0, 1, 2, 3, 5, 7, 8, 9]  ← 返回排序后的结果
    

    其他集合运算

    # 并集
    np.union1d(Z1, Z2)
    
    # Z1 有 Z2 没有
    np.setdiff1d(Z1, Z2)
    
    # Z1 或 Z2 但不同时有
    np.setxor1d(Z1, Z2)
    
    # 检查是否所有元素都相同
    np.array_equal(Z1, Z2)
    

    核心知识点

    1. np.intersect1d() —— 交集
    2. np.union1d() —— 并集
    3. np.setdiff1d() —— 差集
    4. np.setxor1d() —— 对称差集
    • 0
      @ 2026-3-25 14:47:19

      NumPy030 题解

      题目分析

      本题要求找出两个随机数组的交集。

      参考代码

      import numpy as np
      m, n = map(int, input().split())
      np.random.seed(42)
      Z1 = np.random.randint(0, 10, m)
      np.random.seed(0)
      Z2 = np.random.randint(0, 10, n)
      print(np.intersect1d(Z1, Z2))
      
      • 1

      信息

      ID
      81
      时间
      1000ms
      内存
      256MiB
      难度
      (无)
      标签
      (无)
      递交数
      0
      已通过
      0
      上传者