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的帮助文档

     

  • 相关阅读:
    CSUFT 1002 Robot Navigation
    CSUFT 1003 All Your Base
    Uva 1599 最佳路径
    Uva 10129 单词
    欧拉回路
    Uva 10305 给任务排序
    uva 816 Abbott的复仇
    Uva 1103 古代象形文字
    Uva 10118 免费糖果
    Uva 725 除法
  • 原文地址:https://www.cnblogs.com/moss-yang/p/13733283.html
Copyright © 2011-2022 走看看