numpy数学数据处理
数学和统计方法
- sum 对数组中全部或某轴向的元素求和。零长度的数组的sum为0。
- mean 算术平均数。零长度的数组的mean为NaN。
import numpy as np import numpy.random as np_random arr = np.random.randn(5,4) print(arr) print(arr.sum()) #求总和:所有元素相加 print(arr.mean()) #求平均值:所有元素相加后除以元素总数 print(arr.mean(axis=1)) print(arr.cumsum(0))
- std, var 分别为标准差和方差,自由度可调(默认为n)。
- min, max 最大值和最小值
- argmin 分别为最大值和最小值的索引
- cumsum 所有元素的累计和
- cumprod 所有元素的累计积
Any、All测试布尔型数组
bools = np.array([False,True,False,False]) print(bools.any()) #有一个为True就返回True print(bools.all()) #所有为True返回True
sort排序
arr = np_random.randn(8) arr.sort() print(arr) arr = np_random.randn(5,3) arr.sort(1) #指定轴排序
去重与其他集合运算
- unique(x) 计算x中的唯一元素,并返回有序结果。
- intersect1d(x, y) 计算x和y中的公共元素,并返回有序结果。
- union1d(x, y) 计算x和y的并集,并返回有序结果。
- in1d(x, y) 得到一个表述"x的元素是否包含于y"的布尔型数组
- setdiff1d(x, y) 集合的差,即元素在x中且不在y中
- setxor1d(x, y) 集合的异或,即存在于一个数组中但不同时存在于两个数组中的元素。
-
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe']) print(np.unique(names)) #Bob', 'Joe', 'Will' ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4]) print(np.unique(ints)) #1 2 3 4 #'查找数组元素是否在另一数组' values = np.array([6, 0, 0, 3, 2, 5, 6]) print(np.in1d(values, [2, 3, 6]))