NumPy基础--常用函数
来源:互联网 发布:路由器端口转发安全 编辑:程序博客网 时间:2024/05/16 12:42
- 通用函数
- 一元ufunc
- 二元ufunc
- 矢量计算
- numpywhere
- 统计方法
- 用于布尔型数组的方法
- 排序
- 唯一化和其他的集合逻辑
- 线性代数
- 生成随机数
- 通用函数
通用函数
通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数。
1. 一元ufunc
2. 二元ufunc
矢量计算
1. numpy.where
xarr = np.array([1, 2, 3, 4, 5])yarr = np.array([6, 7, 8, 9, 19])cond = np.array([True, False, True, True, False])# 第一种写法,对大数组的处理速度比较慢result = [(x if c else y) for x, y, c in zip(xarr, yarr, cond)]# numpy.whereresult = np.where(cond, xarr, yarr)
对于比较复杂的逻辑,where可以更加简洁的表示
# 第一种写法result = []for i in range(n): if cond1[i] and cond2[i]: result.append(0) elif cond1[i]: result.append(1) elif cond2[i]: result.append(2) eles: result.append(3)# numpy.wherenp.where(cond1 & cond2, 0, np.where(cond1, 1, np.where(cond2, 2, 3)))# 算术运算result = 1 * (cond1 - cond2) + 2 * (cond2 & - cond1) + 3 * -(cond1 | cond2)
2. 统计方法
sum、mean、std等聚合计算,这类函数可以接受一个axis参数(用于计算该轴向上的统计值)
arr = np.random.randn(5, 4)>> arr.mean()0.062814911084854597>> np.mean(arr)0.062814911084854597>> arr.mean(axis = 1)array([-1.2833, 0.2844, 0.6574, 0.06743, -0.0187])>> arr.sum(0)array([-3.1003, -1.6189, 1.4044, 4.5712])
cumsum和cumprod之类的方法则不聚合,而是产生一个由中间结果组成的数组
arr = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])# 传入的0,1参数为axis 表示累乘累和的轴>> arr.cumsum(0)array([[0, 1, 2], [3, 5, 7], [9, 12, 15]])>> arr.cumprod(1)array([[0, 0, 0], [3, 12, 60], [6, 42, 336]])
基本数组统计方法
3. 用于布尔型数组的方法
any用于测试数组中是否存在一个或多个True
all用于检查数组中所有值是或否都为True
bools = np.array([False, False, True, False])>> bools.any()True>> bools.all()False
4. 排序
NumPy数组可通过sort方法直接排序,对于多维数组可在任何一个轴上进行排序,只需传入轴编号
计算数组分位数,只需先排序,再选特定位置的值
arr = randn(100)arr.sort()arr[int(0.05*len(arr))] # 计算5%分位数
5. 唯一化和其他的集合逻辑
例如:
arr = np.array([3, 3, 2, 2, 1, 1, 4])>>np.unique(arr)array([1, 2, 3, 4])# 等价于>> sorted(set(arr))array([1, 2, 3, 4])# np.in1d 测试一个数组中的值在另一个数组中的成员资格>> np.in1d(arr, [2, 3, 6])array([True, True, True, True, False, False, False])
线性代数
常用的numpy.linalg函数
例如:
from numpy.linalg import inv,qrX = randn(5, 5)mat = X.T.dot(X)inv(mat)mat.dot(inv(mat))# qr分解q, r = qr(mat)
生成随机数
numpy.random函数
例如:
# 生成标准正态分布的4*4样本数组samples = np.random.normal(size=(4, 4))# 从0开始,步长1和-1出现概率相等import randomposition = 0walk = [position]steps = 1000for i in xrange(steps): step = 1 if random.randit(0, 1) else -1 position += step walk.append(position)# 第一个到达某个特定值的时间(np.abs(walk) >= 10).argmax() #argmax 返回该布尔型数组第一个最大值的索引
阅读全文
0 0
- NumPy基础--常用函数
- Numpy常用函数
- Numpy:常用函数
- numpy常用函数
- numpy常用函数
- numpy常用函数笔记
- 熟悉 NumPy 常用函数
- 掌握 NumPy 常用函数
- numpy常用函数总结
- numpy中的常用函数
- Numpy常用函数
- numpy 常用函数小计
- pandas numpy常用函数
- 常用numpy函数
- numpy部分常用函数
- numpy常用语法+函数
- Python numpy 常用函数总结
- numpy常用函数及实例
- Spring事务传播机制
- Codeforces633D【暴力】
- MT 105 EDIFACT Envelope电子数据交换信封
- 梯度下降权值更新图解
- 赋值号"="到底干了些什么?
- NumPy基础--常用函数
- Mysql系列——数据库设计(3)——数据库设计的三大范式:详细
- 开源数据源之一——DBCP
- 关于负数的除法问题
- spark java编程练习
- POJ2528 Mayor's posters(线段树+离散化+染色)
- 【2017新疆网络赛】Our Journey of Dalian Ends 费用流
- pageContext和config对象
- MT 107 General Direct Debit Message一般直接借记电文