Numpy的应用


1. 矩阵的创建

  1. 手动创建

    A = np.mat('1 2 3 4 5 6')
  2. 使用Numpy数组创建

    B = np.mat(np.arange(1,10).reshape(3,3))
  3. 利用mat(ndArray)函数创建矩阵,矩阵中存放随机数
    numpy.random函数

    函数 说明
    seed 确定随机数生成器
    permutation 返回一个序列的随机排序或返回一个随机排列的范围
    shuffle 对一个序列就地随机排列
    rand 产生均匀分布的样本值
    randint 从给定的上下限范围内随机选取整数
    randn 产生正态分布(平均值为0,标准差为1)的样本值
    binomial 产生二项分布的样本值
    normal 产生正态分布的样本值
    beta 产生beta分布的样本
    chisquare 产生卡方分布的样本值
    gamma 产生gamma分布的样本值
    uniform 产生在[0,1)中均匀分布的样本值
    
    # 产生随机正态分布样本 
    
    C=np.mat(np.random.normal(size=(4,4)))
    print(C)
    
    # 产生 2 行三列均匀分布随机数组 
    
    D=np.mat(np.random.rand(2,3))
    print(D)
    
  4. 利用bmat()函数合并创建矩阵

    E = np.bmat('A B;B A')

2. 算术运算

函数 说明
add 对应元素相加
subtract 对应元素相减
multiply 对应元素相乘
divide,floor_divide 除法或向下取整,对应 /
true_divide 返回除法的浮点数,对应//

2 模运算

  1. remainder函数:逐个返回两个数组中元素相除后的余数
  2. mod函数与remainder函数的功能完全一致
  3. %操作符仅仅是remainder函数的简写
  4. fmod函数所得余数的正负由被除数决定,与除数的正负无关

3. 通用函数

3.1 一元(unary)ufunc

接受一个数组。返回一个结果数组,当然也有能返回两个数组(modf函数),但是这种的不是很常见;

函数 说明
abs、fabs 计算整数、浮点数或复数的绝对值
sqrt 计算各元素平方根
square 计算各元素平方
exp 计算各元素的指数
log、log10、log2、log1p 分别为自然对数(底数为e)、底数为10的log、底数为2的log、log(1+x)
sign 计算各元素的正负号
ceil 计算各元素的ceiling值,即大于等于该值的最小整数
floor 计算各元素的floor值,即小于等于该值的最大整数
rint 将各元素值四舍五入到最接近的
modf 将数组的小数和整数部分以两个独立的数组形式返回
isnan “哪些值是NaN” 返回布尔值
isfinite、isinf “哪些元素是有穷的” “哪些元素是无穷的”
cos、cosh、sin、sinh、tan、tanh 普通型和双曲型三角函数
arccos、arccosh、arcsin、arcsinh、arctan、arctanh 反三角函数
logical_not 计算各元素not x的真值,相当于

3.2. 二元(unary)ufunc

它们接受两个数组,并返回一个结果数组。

函数 说明
add 元素相加
subtract 从第一个数组中减去第二个数组的元算
multiply 元素相乘
divide、floor_divide 除法或向下圆整除法(丢弃余数)
power A的b次方
maximum、fmax 元素级的最大值计算。fmax将忽略nan
minimum、fmin 元素级的最小值计算。fmin将忽略nan
mod 元素级的求模计算(除法)
copysign 将第二个数组中的值的符号复制给第一个数组中的
greater、greater_equal、less、less_equal、equal、not_equal 执行元素级的比较运算,产生布尔型数组
logical_and、logical_or、logical_xor 执行元素级的真值逻辑运算。相当于& l

3.3 numpy已有的通用函数的具备的方法

  • accumulate 存储求和运算的中间结果并返回
  • reduceat 需要输入一个数组以及一个索引值列表作为参数

  • Outer 返回一个矩阵,将第一个矩阵的第一个元素与第二个 矩阵的每个元素求和返回一个矩阵,再将第一个矩阵的第二个元素与第 二个矩阵的每个元素求和返回一个矩阵

  • reduce 等价于对矩阵元素求和

4. 线性代数应用

常用的numpy.linalg函数

函数 说明
diag 以一维数组的形式返回方针的对角线元素,或将一维数组转换为方阵(非对角线元素为)
dot 矩阵乘法
trace 计算对角线元素的和
det 计算矩阵行列式
eig 计算方阵的本征值和本征(特征值和特征向量)
inv 计算方阵的逆
pinv 计算矩阵的Moore-Penrose伪逆
qr 计算QR分解
svd 计算奇异值分解(SVD)
solve 解线性方程组Ax = b, 其中A为一个方阵
lstsq 计算Ax = b的最小二乘解

5. 专用函数

5.1 排序函数

np.sort(a[, axis, kind, order]) 
a = np.array([[3,1,2],[0,5,4]])
a.sort(anxis=1)#行方向上从小到大排
a.sort(anxis=0)#列方向上从小到大排

np.argsort(a[, axis, kind, order])
np. argsort(a,axis=1) #对每行的数据进行排序返回下标 
np. argsort(a,axis=0) #对每列的数据进行排序返回下标

-np.sort(-a,axis=1) #对每行的数据进行降序排序 
-np.sort(-a,axis=0) #对每列的数据进行降序排序

5.2 搜索函数

  1. argmax函数——返回数组中最大值对应的下标
  2. nanargmax函数——与argmax提供相同的功能,但忽略NaN值
  3. argmin函数——返回数组中最小值对应的下标
  4. nanargmin函数——与argmin的功能类似,但忽略NaN值
  5. argwhere函数——根据条件搜索非零的元素,并分组返回对应的下标
  6. searchsorted函数——为指定的插入值寻找维持数组排序的索引位置。该函数使用二分搜索算法

5.3 数组元素的抽取

  1. extract函数——根据某个条件从数组中抽取元素

    
    #抽取数组中偶数元素
    
    a = np.arange(7)
    condition = (a%2) ==0
    np.extract(condition,a)
  2. nonzero函数——专门用来抽取非零的数组元素

    np.nonzero(a)

5.4 金融函数

  1. fv函数——计算所谓的终值(future value),即基于一些假设给出的某个金融资 产在未来某一时间点的价值。

    numpy.fv(rate, nper, pmt, pv[, when='end’]) 
    
    #参数: 
    
    rate:每一期的利率(rate of interest)。 
    nper:期数。 
    pmt:payment。每期支付金额 
    pv:present value,现值。 
    when:{{‘begin’, 1}, {‘end’, 0}}, {string, int}, optional. 每一期的开头还是结尾付
  2. pv函数——计算现值(present value),即金融资产当前的价值。

    • NPV>0表示项目实施后,除保证可实现预定的收益率外,尚可获得更高的收益。
    • NPV<0表示项目实施后,未能达到预定的收益率水平,而不能确定项目已亏损。
    • NPV=0表示项目实施后的投资收益率正好达到预期,而不是投资项目盈亏平衡。
  3. pmt函数——根据本金和利率计算每期需支付的金额。

    numpy.pmt(rate, nper, pv[, fv=0, when='end’]) 
    
    #参数: 
    
    rate:每一期的利率(rate of interest) 
    nper:期数 
    pv:present value,现值
  4. nper函数——计算定期付款的期数。

    numpy.nper(rate, pmt, pv, fv=0, when='end') 
    '''
    参数: 
    rate:每一期的利率(rate of interest) 
    pmt:每期支付的金额 
    pv:present value,现值 fv: 终值
    '''
  5. rate函数——计算利率(rate of interest)。

    numpy.rate(nper, pmt, pv, fv) 
    '''
    参数: 
    nper :需还的期数 
    pmt:每期支付的金额 
    pv:present value,现值 fv: 终值
    '''

猜你喜欢

转载自blog.csdn.net/qq_27171347/article/details/81277428