zoukankan      html  css  js  c++  java
  • python数据分析(二)

    科学计算库(Numpy)

    numpy 在数据科学领域使用广泛,尤其是在矩阵计算上非常高效。
    一、数据特性
    import numpy as np //导入软件包
    array2 = np.array([1,2]) //可对数组进行数组操作
    array2 = array2+1 //array2变为[2,3]
    array2.shape // 显示矩阵是几维的,如此时输出(2,)表示一维有两个元素
    在ndarray中所有元素都是同一类型,否则会自动向下转换,int ->float->str

     type(array3) //打印当前数据格式 输出 ndarray

    array3.dtype //数据类型 字符
    array3.size //元素个数
    array3.ndim //数据维度

    二、索引与切片
    切取数组中的一部分


    array3[1:3] //从0开始,左闭右开,第一个到第三个
    array3[-1:] //从倒数第二个开始至最后,倒数从1开始
    array4[1] //从0开始,得到第一行
    array4[:,2] //从0开始,得到第2列
    利用bool类型进行筛选
    np.arange(0,100,10) //从0开始到100每隔10个数取一个元素
    np.random.rand(10) //在0到1区间上取10个随机数

     np.logical_and(array1,array2) //与操作

    np.logical_or(array1,array2) //或操作

    三、数据类型与数值计算

    类型转换

     复制与粘贴

     

    数值运算

    np.sum(array) //对矩阵所有元素求和的值
    np.sum(array,0) //对矩阵所有列元素求和的向量
    np.sum(array,1) //对矩阵所有行元素求和的向量

    其他可以进行数据分列分行计算的函数
    array.prod( ) //各元素累乘 ,0按列,1按行
    array.min() //各元素最小,0按列,1按行
    array.mean() //各元素求和取均值,0按列,1按行
    array.std() //各元素求标准差,0按列,1按行
    array.var() //各元素求方差
    array.clip(2,4) //比2小的全为2,比4大的全为4
    array.round(decimals=2) //取精度,保留两位
    array.argmin() //获得最小值的索引位置,0按列,1按行
    np.multiply(array1,array2) //对应位置相乘
    np.dot(array1,array2) //矩阵相乘
    np.sort(array) //各元素排序,0按列,1按行
    np.argsort(array) //各元素排序返回索引,0按列,1按行
    np.linspace(0,10,10) //在0~10之间产生10个等间距数据
    np.searchsorted(array1,array2)//array2中的数应该插入array1中的位置
    np.lexsort([-1*array1[:,0]]) //第一列降序排序
    np.lexsort([array1[:,0]]) //第一列升序排序
    数组形状操作
    array = np.arange(10)
    array.shape = 2,5 //数组变成2*5的矩阵
    array=array3[np.newaxis,:] //增加矩阵维度
    array.transpose() //矩阵转置
    array.T //矩阵转置后打印
    np.concatenate((a,b))与np.stack((a,b))区别

     

    创建数组函数
    np.arange(2,20,2) //2到20内以2为间隔的矩阵
    np.logspace(0,1,5) //以10为底的log函数
    np.r_[0:5:1] //快速创建列向量
    np.c_[0:5:1] //快速创建行向量
    np.zeros(3) //有三个元素的0矩阵
    np.zeros((3,3))/ np.ones((3,3)) //有3*3的0/1矩阵
    np.ones((3,3))*8
    a = np.empty(6) a.fill(1) //创建矩阵
    np.zeros_like(array) //创建矩阵的维度与array一致
    np.identity(5) //对角线有数值并且为1
    随机模块
    np.random.rand(3,2) //随机创建3*2的矩阵
    np.random.randint(10,size = (5,4)) //0到10之间的5*4的随机整数
    np.random.rand() //一个随机数
    np.random.rand(0,10,3) //0到10之间3个随机数
    np.random.normal(0,0.1,10) //均值0,标准差0.1的高斯分布随机数
    np.set_printoptions(precision = 2) //全局设置,控制结果输出
    np.random.shuffle(array) //每次执行结果不一样
    np.random.seed(100) //指定随机种子

    文件读写
    写入一个文件及从文件读取数据

    写入文件后分格符及可以跳过第一行

    print (help(np.loadtxt)) //查看loadtxt的帮助文档

     

  • 相关阅读:
    前后端分离的若依(ruoyi)基本使用
    Redis (error) NOAUTH Authentication required.解决方法
    Creating Server TCP listening socket 127.0.0.1:6379: bind: No error。。。启动遇到问题的解决办法
    持续集成
    Java compiler level does not match the version of the installed Java project facet问题解决
    控制台报错:Unknown database 'xxxxx'
    走进docker-machine
    走进docker-compose
    java新手学习路线
    Spring WebFlux 教程:如何构建反应式 Web 应用程序
  • 原文地址:https://www.cnblogs.com/moss-yang/p/13733283.html
Copyright © 2011-2022 走看看