去重以及其它集合运算
去重以及其它集合运算
类型 | 说明 |
---|---|
unique(x) | 计算x中的唯一元素,并返回有序结果。 |
intersect1d(x, y) | 计算x和y中的公共元素,并返回有序结果。求交集,1d表示1维数组。 |
union1d(x, y) | 计算x和y的并集,并返回有序结果。求并集,1d表示1维数组。 |
in1d(x, y) | 得到一个表述"x的元素是否包含于y"的布尔型数组。 |
setdiff1d(x, y) | 集合的差,即元素在x中且不在y中。求差集。 |
setxor1d(x, y) | 集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素。求异或。 |
栗子:
# -*- coding: utf-8 -*-
import numpy as np
import numpy.random as np_random
print('用unique函数去重')
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
print(sorted(set(names))) # 传统Python做法,转为集合,集合元素是唯一的
print(np.unique(names))
ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4])
print(np.unique(ints))
print()
print('查找数组元素是否在另一数组')
values = np.array([6, 0, 0, 3, 2, 5, 6])
print(np.in1d(values, [2, 3, 6]))
结果:
用unique函数去重
['Bob', 'Joe', 'Will']
['Bob' 'Joe' 'Will']
[1 2 3 4]
查找数组元素是否在另一数组
[ True False False True True False True]