利用数组进行数据处理
类型 |
说明 |
unique(x) |
计算x中的唯一元素,并返回有序结果。 |
intersect1d(x, y) |
计算x和y中的公共元素,并返回有序结果。 |
union1d(x, y) |
计算x和y的并集,并返回有序结果。 |
in1d(x, y) |
得到一个表述"x的元素是否包含于y"的布尔型数组 |
setdiff1d(x, y) |
setdiff1d(x, y) |
setxor1d(x, y) |
集合的差,即元素在x中且不在y中 |
cumprod |
集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素。 |
import numpy as np
排序
arr = np.random.randn(5)
arr.sort()
print(arr)
[-0.78386546 -0.38684845 -0.36686693 0.12452924 0.84976248]
二维数组排序
arr = np.random.randn(5,3)
print(arr)
[[ 0.78372274 -1.1086224 0.19517135]
[-1.68156953 1.38959928 1.64771021]
[-1.00695144 1.04649726 -0.57994712]
[-1.55014457 -0.12266938 -1.43501458]
[ 0.41199755 1.13162107 0.68240463]]
arr.sort(1)
print(arr)
[[-1.1086224 0.19517135 0.78372274]
[-1.68156953 1.38959928 1.64771021]
[-1.00695144 -0.57994712 1.04649726]
[-1.55014457 -1.43501458 -0.12266938]
[ 0.41199755 0.68240463 1.13162107]]
找中位数
arr = np.random.randn(10000000)
arr.sort()
print(arr[int(0.5*len(arr))])
0.000460625211239
唯一化
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
传统做法
print(set(names))
{'Bob', 'Joe', 'Will'}
unique的方法
print(np.unique(names))
print(sorted(set(names)))
['Bob' 'Joe' 'Will']
['Bob', 'Joe', 'Will']
成员资格判断
values = np.array([6, 0, 0, 3, 2, 5, 6])
print (np.in1d(values, [2, 3, 6]))
[ True False False True True False True]
网友评论