numpy.intersect1d
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False) [source]
找到两个数组的交集。
返回两个输入数组中已排序的唯一值。
参数 : | ar1, ar2 :array_like 输入数组。 如果尚未为1D,则将被展平。 assume_unique : 如果为 这可以加快计算速度。 默认值为 return_indices : 如果为 如果有多个值,则使用值的第一个实例。 默认值为 1.15.0版中的新功能。 |
返回值 : | intersect1d : 常见和唯一元素的排序一维数组。 comm1 : ar1中共同值的首次出现的索引。 仅在return_indices为 comm2 :ndarray ar2中公共值首次出现的索引。 仅在return_indices为 |
例子
1)基本用法 (返回交集元素)
import numpy as np array1 = np.array([1, 2, 3, 4, 5]) array2 = np.array([3, 5, 6, 7, 8]) intersection = np.intersect1d(array1, array2) print(f"数组 1: {array1}") print(f"数组 2: {array2}") print(f"交集元素: {intersection}")
2)输入包含重复元素 (默认 assume_unique=False
)
import numpy as np array3 = np.array([1, 2, 2, 3, 4, 4, 5]) array4 = np.array([3, 3, 5, 6, 7, 7, 8]) intersection_with_duplicates = np.intersect1d(array3, array4) print(f"数组 3: {array3}") print(f"数组 4: {array4}") print(f"交集元素 (包含重复): {intersection_with_duplicates}")
3)使用 assume_unique=True
(假设输入元素唯一)
import numpy as np array5 = np.array([1, 2, 3, 4, 5]) array6 = np.array([3, 5, 6, 7, 8]) intersection_unique = np.intersect1d(array5, array6, assume_unique=True) print(f"数组 5: {array5}") print(f"数组 6: {array6}") print(f"交集元素 (假设唯一): {intersection_unique}")
4)返回索引 (return_indices=True
)
import numpy as np array7 = np.array([10, 20, 30, 40, 50]) array8 = np.array([30, 50, 60]) intersection_with_indices, indices_a, indices_b = np.intersect1d(array7, array8, return_indices=True) print(f"数组 7: {array7}") print(f"数组 8: {array8}") print(f"交集元素: {intersection_with_indices}") print(f"交集元素在数组 7 中的索引: {indices_a}") print(f"交集元素在数组 8 中的索引: {indices_b}")