zoukankan      html  css  js  c++  java
  • 02 numpy_02 数组的基本运算

    1. 数组的四则运算

    在numpy中实现四则运算,既可以使用符号,也可以使用函数

    •  +   np.add(arr1, arr2)
    •  -    np.subtract(arr1, arr2)
    • *    np.multiply(arr1, arr2)
    •  /     np.divide(arr1, arr2)
    • %    np.fmod(arr1, arr2)
    • //     np.modf(arr1/arr2)[1]
    • **    np.power(arr1, arr2)

    2.比较运算  

     > >=  <  <= ==  !=

    比较运算返回的是bool类型的值,即true 或者 false

    比较运算用来筛选出特定的值或者对这些值进行一些操作

    import numpy as np
    
    arr = np.array([[1,3,4],[5,6,7],[3,3,9]])
    arr1 = np.array([[3,3,3],[3,3,3],[3,3,3]])
    
    # 获取arr中比arr1大的元素, 返回的是一个一维数组
    # arr > arr1 这个表达式返回的是一个与arr形状相同的数组,里边放的是一个个bool值,将这个bool数组作为索引,取arr中取值
    arr[arr>arr1]
    
    # 获取arr中比6大的元素
    arr[arr>6]
    
    # 将arr中大于3的位置改为0
    arr2 = np.where(arr>3, 0, arr)
    
    # arr中大于3的位置改为0,否则变为1
    np.where(arr>3, 0, 1)

    3. 广播运算

    广播运算: 参与运算的数组,维度不同,也能进行运算的功能

    # 各个输入数组的维度可以不相同,但必须保证从右到左的对应维度值相等,如下例,arr的形状为5,4,3,  arr1的形状为4,3 , 这样就可以参与运算
    arr = np.arange(60).reshape(5,4,3) arr1 = np.arange(12).reshape(4,3) arr + arr1 # 如果对应维度值不相等,就必须保证其中一个的值为1 # arr 的形状为 5,4,3 arr1 的形状为 4,1 , 自动将arr1补齐为4,3的数组参与运算, arr1 = np.arange(4).reshape(4,1) arr + arr1

     

    4.常用的数学和统计函数

      数学函数

    • np.pi  常数π
    • np.e   常数e
    • np.fabs(arr)   计算数组各元素的浮点型绝对值
    • np.ceil(arr)    对数组个元素向上取整
    • np.floor(arr)  对数组各元素向下取整
    • np.round(arr)  四舍五入取整
    • np.fmod(arr1, arr2)   计算arr1/arr2的余数
    • np.modf(arr)    获取arr小数部分和整数部分
    • np.sqrt(arr)    算数平方根
    • np.square(arr)   平方值
    • np.power(arr, α)   指数
    • np.log2(arr)    计算以2为底,各元素的对数
    • np.log10(arr)   计算以10为底,个元素的对数
    • np.log(arr)     计算以e为底,各元素的对数  

      统计函数

    • np.min(arr, axis)   按照轴的方向计算最小值
    • np.max(arr, axis)
    • np.mean(arr,axis)
    • np.median(arr, axis)  中位数
    • np.sum(arr, axis)
    • np.std(arr, axis) 标准差
    • np.var(arr,axis)  方差
    • np.cumsum(arr,axis)   累计和
    • np.cumprod(arr, axis)   累计乘积
    • np.argmin(arr, axis)   最小值所在的位置
    • np.argmax(arr, axis)   最大值所在的位置
    • np.corrcoef(arr)  皮尔逊相关系数
    • np.cov(arr)  协方差矩阵

    5. 线性代数相关计算  

    数据挖掘理论背后离不开有关线性代数的计算问题,如矩阵乘法,矩阵分解,行列式求解等.本章介绍的numpy模块同样可以解决各种线性代数相关的计算,只不过需要调用numpy的子模块linalg(线性代数的缩写),该模块几乎提供了线性代数所需的所有功能.

    线性代数相关重要函数:

    • np.zeros(shape=[4,4])   生成一个4*4 的零矩阵
    • np.ones()   生成所有元素为1的矩阵
    • np.eye(3)     生成3*3单位矩阵
    • np.transpose()   矩阵转置
    • np.dot      生成两个数组的点积
    • np.inner   生成两个数组的内积
    • np.diag    矩阵主对角线与一维数组间的转置
    • np.trace   矩阵主对角线元素之和
    • np.linalg.det   计算矩阵行列式
    • np.linalg.eig   计算矩阵特征根与特征向量
    • np.linalg.eigvals   计算方阵特征根 
    • np.linalg.inv   计算方阵的逆
    • np.linalg.pinv  计算方阵的Moore-Penrose伪逆
    • np.linalg.solve  计算 Ax=b线性方程组的解
    • np.linalg.lstsd 计算 Ax=b的最小二乘解
    • np.linalg.qr  计算qr分解
    • np.linalg.svd  计算奇异值分解
    • np.linalg.norm 计算向量或者矩阵的范数 
  • 相关阅读:
    #QCon#北京2011大会“更有效地做测试”专题Slides资料
    长草了,冒个泡
    很好的一个书单
    团购——以价格换体验
    rpm deb命令集合[转]
    一个自动copy文件到指定目录的小程序
    ubuntulinux下的精品软件大汇总
    解决星际译王不朗读单词问题
    数据结构实验三:二叉树及其应用
    数据结构实验六:内部排序技术
  • 原文地址:https://www.cnblogs.com/zhangjian0092/p/11826082.html
Copyright © 2011-2022 走看看