zoukankan      html  css  js  c++  java
  • Ipython Numpy pandas

    Ipython:交互式的Python命令行

    TAB:自动完成

    ?:内省,命令空间搜索

    !:执行系统命令

    %run:命令执行文件代码

    Ipython常用魔术命令:

    %quickref:显示Ipython的快速参考

    %magic:显示所有魔术命令的详细文档

    %debug:从最新的异常追踪的底部进入交互式命令调试器

    %hist:打印命令的输入(可选输出)历史

    %pdb:在异常发生后自动进入调试器

    %paste:执行剪贴板中的Python代码

    %cpaste:打开一个特殊提示符以便手工粘贴待执行的Python代码

    %reset:删除interactive命名空间中的全部变量/名称

    %page OBJECT:通过分页器打印输出OBJECT

    %run script.py:在Ipython中执行一个Python脚本文件

    %prun statement:通过cProfile执行statement,并打印分析器的输出结果

    %time statement:报告statement的执行时间

    %timeit statement:多次执行statement以计算系统平均执行时间,对那些执行时间非常小的代码有用

    %who %who_is %whos:显示interactive命名空间中定义的变量,信息级别/冗余度可变

    %xdel variable:删除variable,并尝试清除其在Ipython中的对象上的一切引用

    Ipython快捷键:

    Ctrl+P或上方向键:后向搜索命令历史中以当前输入的文本开头的命令

    Crel+N或下方向键:前向搜索命令历史中以当前输入的文本开头的命令

    Ctrl+R:按行读取的反向历史搜索(部分匹配)

    Ctrl+shift+V:从剪贴板粘贴文本

    Ctrl+C:中止当前正在执行的代码

    Ctrl+A:将光标移动到行首

    Ctrl+E:将光标移动到行尾

    Ctrl+K:删除从光标开始至行尾的文本

    Ctrl+U:清除当前行执行的所有文本

    Ctrl+F:将光标向前移动一个字符

    Ctrl+B:将光标向后移动一个字符

    Ctrl+L:清屏

    NumPy:数组运算:

    Numpy是高性能科学计算和数据分析的基础包,他是pandas等其他各种工具的基础

    Numpy:的主要功能:

    ndarray,一个多维数组结构,高效且节省空间,无需循环对整组数组数据进行运算,读写磁盘数据的工具以及用于操作内存映射文件的工具,线性代数,随机数生成和傅里叶变换功能,用于集成C,C++等代码的工具

    安装方法:pip install numpy

    饮用方式:import numpy as np

    ndarray:多维数组对象

    创建ndarray:np.array()

    ndarray:还可以是多维数组,但元素类型必须相同

    常用属性:

    T:数组的转置(对高维数组而言)

    dtype:数组元素的数据类型

    size:数组元素的个数

    ndim:数组的维数

    shape:数组的纬度大小(以元组形式)

    dtype:bool_,int,float类型转换:astype()

    创建ndarray:

    array():将列表转换为数组,可选择显式指定dtype,

    arange():range的numpy版,支持浮点数

    ?:可帮助查看方法参数

    linspace():类似arange(),第三个参数为数组长度

    zeros():根据指定形状和dtype创建全0数组

    ones():根据指定形状和dtype创建全1数组

    reshape()

    Numpy:索引和切片

    数组和标量之间的运算

    a+1,a*3,1//a,a**0.5

    同样大小数组之间的运算

    a+b,a/b,a**b

    数组的索引:

    a[5],a2[2][3],a2[2,3]

    数组的切片:a[5:8],a[:3],a2[1:2,:4],a2[:,:1] ,a2[:,1]

    布尔型索引:

    给定一个数组选出数组中所有大于5的数:a[a>5]

    原理:a>5会对a中的每一个元素进行判断,返回一个布尔型数组,

    布尔型索引:将同样大小的布尔数传进索引,会返回一个由所有True对应位置的元素的数组

    问题二:给一个数组,选出数组中所有大于5的偶数.

    问题三:给一个数组,选出数组中所有大于5的数和偶数

    答案:a[(a>5)&(a%2==0)],a[(a>5)|(a%2==0)]

    花式索引:

    对于一个数组,选出第1,3,4,6,7个元素组成新的数组

    a[[1,3,4,6,7]

    对于一个二维数组,选出其第一列和第三列答案:

    a[:,[1,3]]

    NumPy:通用函数

    通用函数:能同时对数组中所有元素进行运算的函数

    常见通用函数:

    一元函数:abs,sqrt,exp,log,ceil,floor,rint,trunc,modf,isnan,isinf,cos,sin,

    二元函数:add,substract,multiply,divide,power,mod,maximum,mininum

    数学和统计方法

    sum:求和,mean:求平均数,std:求标准差,var:求方差,min:求最小值,max:求最大值

    argmin:求最小值索引,argmax:求最大值索引

    np.random:常用函数

    rand:给定形状产生随机数组(0到1之间的数)

    randint:给定形状产生随机整数

    choice:给定形状产生随机选择(符合正态分布?)

    shuffle:与random.shuffle相同打乱排序,改变原数组

    uniform:给定形状产生随机数组

    pandas:数据分析

    pandas:是一个强大的Python数据分析的工具包,

    pandas是基于NumPy构建的

    pandas的主要功能:具备对其功能的数据结构DataFrame,Series,集成时间序列功能,

    提供丰富的数学运算和操作,灵活的处理缺失数据

    安装方法:pip install pandas

    引用方法:import pandas as pd

    Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成

    series比较像列表(数组)和字典的结合体

    创建方式:pd.Series([4,7,-5,3])

    pd.Series([4,7,-5,3],index=['a','b','c','d'])

    pd.Series({'a':1,'b':2})

    pd.Series(0,index=['a','b','c','d'])

    获取值数组和索引数组:values属性和index属性

    Series特性:

    Series支持Numpy模块的特性(下标):

    从ndarray创建Series:Series(arr)

    与标量运算:sr*2

    两个Series运算:sr1+sr2

    索引;sr[0],sr[[1,2,4]](花式索引)

    切片:sr[0:2]

    通用函数:np.abs(sr)

    布尔值过滤:sr[sr>0]

    Series支持字典的特性(标签):

    从字典创建Series:Series(dic),

    in运算:'a' in sr

    键索引:sr['a'],sr[['a','b','d']]

    pandas:Series数据对齐

    pandas在运算时,会按索引进行对齐然后运算,如果存在不同的索引,则结果的索引是两个操作数索引的并集

    例如:

    sr1=pd.Series([12,23,34],index=['c','a','d'])

    sr2=pd.Series([11,20,10],index=['d','c','a'])

    sr1+sr2

    sr3=pd.Series([11,20,10,14],index=['d','c','a','b'])

    sr1+sr3

    pandas:Series缺失数据

    缺失数据:使用NaN(Not a Number)来表示缺失数据,其值等于np.nan,内置的None值也会被当做naN处理

    处理确实数据的相关方法:

    dropna():过滤掉值为NaN的行

    fillna():填充缺失数据

    isnull():返回布尔数组,缺失值对应为True

    notnull():返回布尔数组,缺失值对应为False

    过滤缺失数据:sr.dropna()或sr[data.notnull()]

    填充缺失数据:fillna(0)

    pandas:DataFrame

    DataFrame是一个表格型的数据结构,含有一组有序的列

    DataFrame可以被看做是由Series组成的字典,并且共用一个索引

    创建方式:

    pd.DataFrame({'one':[1,2,3,4],'two':[4,3,2,1]})

    pd.DataFrame({'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([1,2,3,4],index=['b','a','c','d'])})

    csv文件读取与写入:

    df.read_csv('filename.csv')

    df.to_csv()

    查看数据常用属性及方法:

    index获取索引,T转置,columns获取列索引,values:获取值数组,describe():获取快速统计

    DataFrame索引和切片

    DataFrame有行索引和列索引

    通过标签获取:df['A'],df[['a','b']],df['a'][0],df[0:10][['a','c']]

    df.loc[:,['a','b']],df.loc[:,'a':'c'],df.loc[0,'a'],df.loc[0:10,['a','c']]

    通过为止获取:df.iloc[3],df.iloc[3,3],df.iloc[0:3,4:6],df.iloc[1:5,:],df.iloc[[1,2,3],[0,3]]

    通过布尔值过滤:

    df[df['a']>0],df[df['a'].isin([1,3,5])],df[df<0]=0

    数据对齐与缺失数据

    DataFrame对象在运算时,同样会进行数据对齐,结果的行索引与列索引分别为两个操作数的行索引与列索引的并集,

    DataFrame处理缺失数据的方法:

    drop(axis=0,where='any',...)

    fillna(),isnull(),notnull()

    pandas:其他常用方法

    pandas常用方法(使用Series和DataFrame):

    mean(axis=0,skipna=False),sun(aixs=1),

    sort_index(axis,...,ascending)按行或列索引排序

    NumPy的通用函数同样适用pandas

    pandas从文件读取:

    读取文件:从文件名,URL,文件对象中加载数据

    read_csv 默认分割符为csv

    read_table 默认分割符为

    读取文件函数主要参数:

    sep:指定分割符,可用正则表达式如's+'

    headerNone 指定文件无列名

    name 指定列名

    index_col  指定某列作为索引

    skip_row 指定跳过某些行

    na_values:指定某些字符串表示缺失值

    parse_dates :指定某些列是否被解析为日期,布尔值或列表

    写入到文件:to_csv

    写入文件函数的主要参数:

    sep,na_rep指定缺失值转换的字符串,默认为空字符串

    header=False 不保存列名  index=False 不保存行索引  cols 指定输出的列,传入列表

  • 相关阅读:
    [FAQ] Cannot use object of type MongoInt64 as array
    [Go] 选择 Beego 的三个理由
    [PHP] 有关PHP浮点数默认显示位数 precision 以及如何调整
    [FAQ] Beego2.0.2 bee 生成的 api 项目运行 404, http server Running on http://:8080
    [K8s] Kubernetes核心基础概念 Node, Pod, ReplicaSet, Deployment, Service, Ingress, ConfigMap
    [FE] uViewUI u-navbar 曲线解决 uni onNavigationBarButtonTap 的限制与失效
    Xmind 8 pro 破解版详细安装教程
    SQL 触发器 暂停 和 启动
    SQL 代理服务无法启动
    MongoDB 项目实例-用户信息增删改查
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10896204.html
Copyright © 2011-2022 走看看