"""
np.sort()方法返回的是已经排好序的数组拷贝,而不是对原数组按位置排序
"""
import numpy as np
arr_1 = np.array([1, 4, 3, 6, 2, 5])
print(np.sort(arr_1))
arr_2 = np.random.randn(6)
print(arr_2)
arr_2.sort() # 这种方法会修改原数组
print(arr_2)
# 唯一值:np.unique(),返回的是一数组中【去重】并【排序】之后形成的数组,相当于纯Python中sort(set(列表))
names = np.array(["Bob", "Akali", "Faker", "Clid"])
print(np.unique(names)) # ['Akali' 'Bob' 'Clid' 'Faker']
# 集合
"""
数组的集合操作:
方法 描述
---------------------------------------------------
np.unique(x) 【去重】并【排序】
np.intersect1d(x,y) 计算x和y的【交集】,并【排序】
np.union1d(x,y) 计算x和y的【并集】,并【排序】
np.in1d(x,y) 计算x中的元素是否包含在y中,返回一个布尔值数组
np.setdiff1d(x,y) 差集,在X中但不在Y中的x的元素
np.setxor1d(x,y) 异或集,在x或y中,但不属于x、y交集的元素
"""
arr_3 = np.array([1, 2, 3, 4, 5])
arr_4 = np.array([9, 8, 7, 6, 5])
print(np.intersect1d(arr_3, arr_4)) # [5]
print(np.union1d(arr_3, arr_4)) # [1 2 3 4 5 6 7 8 9]
print(np.in1d(arr_3, arr_4)) # [False False False False True]
print(np.setdiff1d(arr_3, arr_4)) # [1 2 3 4]
print(np.setxor1d(arr_3, arr_4)) # [1 2 3 4 6 7 8 9]
arr_5 = np.array(["北京", "天津", "上海", "广州", "成都"])
arr_6 = np.array(["天津", "货船", "巴西", "新加坡", "音乐"])
print(np.intersect1d(arr_5, arr_6)) # ['天津']
print(np.union1d(arr_5, arr_6)) # ['上海' '北京' '天津' '巴西' '广州' '成都' '新加坡' '货船' '音乐']
print(np.in1d(arr_5, arr_6)) # [False True False False False]
print(np.setdiff1d(arr_5, arr_6)) # ['上海' '北京' '广州' '成都']
print(np.setxor1d(arr_5, arr_6)) # ['上海' '北京' '巴西' '广州' '成都' '新加坡' '货船' '音乐']