数据分析之python数据计算方法上篇(math|numpy)

本文介绍了Python中用于数据计算的math库,涉及基本数学函数如取整、对数和绝对值,以及numpy库的多维数组操作、数据类型、索引切片、转置与轴对换、数组运算和统计函数等内容。后续章节将介绍pandas库。
摘要由CSDN通过智能技术生成

本文介绍用于python数据计算的两个库 math、numpy。下篇将介绍pandas。

一、math库

数据分析常用函数:

import math
math.ceil(a) #向上取整
math.floor(a) #向下取整
math.e #e值
math.exp(a) #e的a次方
math.fabs(a) #a的绝对值
math.log10(100) # 2.0, 100以10为底的对数
math.log(100,10) # 2.0, 100以10为底的对数
math.log(math.e) # 1.0, 底不写时默认为e,同数学中ln

【更多参考 https://blog.csdn.net/qq_20412595/article/details/79838380

二、numpy库

  1. 全名Numeric Python,开源的Python科学计算库。核心是ndarray对象,即多维数组(N-dimensional array)

  2. 创建数组

    1. arr = np.array(list1) #np.array是用于创建ndarray对象的函数;list1=[[1,2,3,4],[5,6,7,8]]
    2. np.arange(10) #输出array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    3. np.arange(32).reshape((8, 4)) #
    4. np.zeros(10),np.zeros((3, 6)) #创建指定长度或形状的全0数组
    5. np.ones(10),np.ones((3, 6)) #创建指定长度或形状的全1数组
    6. np.empty((2,3,2)) #创建指定长度或形状的无具体值的数组【一般为未初始化的垃圾值】
    7. eye,identity #N*N单位矩阵(对角线为1,其余为0)
  3. 维度大小及数据类型

    1. arr.shape #(2, 4) 返回元组,表示各维度大小
    2. arr.dtype #dtype(‘int64’) 查看数组数据类型
    3. arr.astype(np.float) #注:显示转换数据类型,调用astype会创建一个新的数组
  4. 索引和切片

    1. 一维数组切片表面上和列表切片差不多
    2. arr[5:8] 数组切片是原始数组的视图,视图上修改会直接反映到源数组上。
    3. arr[5:8].copy() 若要复制而不要视图,需显示进行复制操作
    4. arr[0][2] or arr[0, 2] 选取单个元素
    5. 布尔型数组,布尔算术运算符:&和, |或
    6. data[data < 0] = 0
    7. arr[[0,1],[1,2]]花式索引:array([[1, 2, 3, 4],[5, 6, 7, 8]])=>array([2, 7])指利用整数数组进行索引 #和切片不同,花式索引总是将数据复制到新数组中 【详细参考https://zhuanlan.zhihu.com/p/123858781
    8. 负数索引:从末尾开始索引,-1指末尾
    9. np.ix_ 函数
  5. 数组转置和轴对换

    1. 转置transpose-重塑的特殊形式,返回源数据的视图
      1. arr.T 简单转置-进行轴对换
        1. np.dot(arr.T, arr) 计算矩阵内积( X^T*X)
    2. arr.swapaxes(1,2) #也是返回视图
  6. 数组运算

    1. 大小相等数组间运算会将运算应用到元素级
    2. 数组与标量的算术运算也会将标量值传播到各个元素
    3. 不同大小数组间运算叫做广播
  7. 通用函数(ufunc):快速的元素级数组函数

    1. 一元ufunc:
      1. np.square(arr) 平方
      2. np.sqrt(arr) 平方根
      3. np.exp(arr) 指数
      4. np.modf(arr) 将数组的小数和整数部分以两个独立数组的形式返回
      5. ~
    2. 二元ufunc:
      1. np.add(arr1,arr2) 相加
      2. np.subtract(arr1,arr2) 相减 前-后
      3. np.maximum(arr1,arr2) 元素级都取最大值
      4. np.power(arr1,arr2) arr1的arr2次方
      5. ~【更多参考 https://blog.csdn.net/weixin_42109859/article/details/105471249
  8. 统计函数

    1. arr.sum() 求和
    2. arr.min() 最小值
    3. arr.max() 最大值
    4. arr.mean() 平均值
    5. arr.var() 方差
    6. arr.std() 标准差
  9. 随机函数

    1. np.random.rand() #0.786473418401515
    2. np.random.rand(3, 4) #3行4列数组,[0,1)间随机数均匀分布组成
    3. np.random.randn(3, 4) #3行4列数组,正态分布组成
    4. np.random.randint(80, 90, (3, 4)) #3行4列数组,[80,90)间整数组成
    5. np.random.seed(100) np.random.rand(3, 4) #seed初始化种子后,同一环境下随机结果相同
    6. 【更多参考 https://blog.csdn.net/weixin_43092663/article/details/123828951
  10. 文件读写

    1. 读:arr2 = np.loadtxt(‘./infile.txt’, delimiter=‘,’) #infile文件的内容逗号分隔形式加载到数组arr2
    2. 写:np.savetxt(‘./outfile.txt’, arr, delimiter=‘,’, fmt=‘%d’) #arr数组以整数形式逗号分隔保存到outfile文件中【更多参考 https://blog.csdn.net/weixin_44258187/article/details/85835429
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值