numpy:

import numpy as np

  1. np.array([1,2,3]) 创建数组
  2. np.arange(10).reshape(2,5) 类似于range(起始,终止,步长),可以加reshape(2,5)定义形状。必须是相乘等于前面的size
  3. np.linsapace(1,10,10) 参数为:起始,终止,平分多少个
  4. zeros((2,4)) 根据指定形状和dtype创建全0数组
  5. ones((2,4)) 根据指定形状和dtype创建全1数组
  6. empty((2,4)) 根据指定形状和dtype创建空数组(随机值)
  7. eye(5) 根据指定边长和dtype创建单位矩阵 5*5的矩阵,从0开始的的对角线为1,其他为0
  8. arr[0:2,1:3] 多维数据的切片 逗号前是行,后面是列

布尔型索引:

  • 给一个数组,选出数组中所有大于5的数和偶数。
  • 答案:arr[(a>5) & (a%2==0)] 或是| 非是~
  • 花式索引*
  • 对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组。
  • 答案:arr[[1,3,4,6,7]]
  • 对一个二维数组,选出其第一列和第三列,组成新的二维数组。
  • 答案:a[:,[1,3]] 解读:行全取,列要1,3

常见通用函数:

二元函数:

浮点数特殊值:

  • 浮点数:float
  • 浮点数有两个特殊值:
  • nan(Not a Number):不等于任何浮点数(nan != nan) 例如:0/0 或者 负数开根号
  • inf(infinity):比任何浮点数都大 例如:4/0 为无限大
  • 在数据分析中,nan常被用作表示数据缺失值

常用函数:

  • sum 求和
  • cumsum 求前缀和
  • mean 求平均数
  • std 求标准差
  • var 求方差
  • min 求最小值
  • max 求最大值
  • argmin 求最小值索引
  • argmax 求最大值索引

随机数生成函数在np.random子包内
常用函数

  • rand 给定形状产生随机数组(0到1之间的数)
  • randint 给定形状产生随机整数
  • choice 给定形状产生随机选择
  • shuffle 与random.shuffle相同
  • uniform 给定形状产生随机数组

pandas:

  • pandas的主要功能
  • 具备对其功能的数据结构DataFrame、Series
  • 集成时间序列功能
  • 提供丰富的数学运算和操作
  • 灵活处理缺失数据

Series

  • Series是一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。
  • 创建方式:
pd.Series([4,7,-5,3])
结果: 0 4
1 7
2 -5
3 3
pd.Series([4,7,-5,3],index=['a','b','c','d'])
结果: a 4
b 7
c -5
d 3
pd.Series({'a':1, 'b':2})
结果: a 1
b 2
pd.Series(0, index=['a','b','c','d’])
a 0
结果: b 0
c 0
d 0

  

获取值数组和索引数组:values属性和index属性
Series比较像列表(数组)和字典的结合体。

Series支持数组的特性:

  • 从ndarray创建Series:Series(arr)
  • 与标量运算:sr*2
  • 两个Series运算:sr1+sr2
  • 索引:sr[0], sr[[1,2,4]]
  • 切片:sr[0:2](切片依然是视图形式)
  • 通用函数:np.abs(sr)
  • 布尔值过滤:sr[sr>0]
  • 统计函数:mean() sum() cumsum()

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

  • loc
  • 从字典创建Series:Series(dic),
  • in运算:’a’ in sr、for x in sr
  • 键索引:sr['a'], sr[['a', 'b', 'd']]
  • 键切片:sr['a':'c']
  • 其他函数:get('a', default=0)等

loc属性 以标签解释
iloc属性 以下标解释

如何在两个Series对象相加时将缺失值设为0?

  • sr1.add(sr2, fill_value=0)
  • Series缺失数据 NaN
  • dropna() 过滤掉值为NaN的行
  • fillna() 填充缺失数据
  • isnull() 返回布尔数组,缺失值对应为True : 布尔值索引
  • notnull() 返回布尔数组,缺失值对应为False
  • 过滤缺失数据:sr.dropna() 或 sr[data.notnull()]
  • 填充缺失数据:fillna(0)

DataFrame

  • 创建方式:
  • 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'])})

DataFrame使用索引切片

  • 方法1:两个中括号,先取列再取行。 df['A'][0]
  • 方法2(推荐):使用loc/iloc属性,一个中括号,逗号隔开,先取行再取列。
  • loc属性:解释为标签
  • iloc属性:解释为下标
  • 向DataFrame对象中写入值时只使用方法2
  • 行/列索引部分可以是常规索引、切片、布尔值索引、花式索引任意搭配。(注意:两部分都是花式索引时结果可能与预料的不同)

通过标签获取:

  • 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,4],[0,3]]

通过布尔值过滤:

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

DataFrame数据对齐与缺失数据
DataFrame处理缺失数据的相关方法:

  • dropna(axis=0,where='any',…)
  • fillna()
  • isnull()
  • notnull()

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

  • mean(axis=0,skipna=False)
  • sum(axis=1)
  • sort_index(axis, …, ascending) 按行或列索引排序
  • sort_values(by, axis, ascending) 按值排序
  • NumPy的通用函数同样适用于pandas
  • apply(func, axis=0) 将自定义函数应用在各行或者各列上 ,func可返回标量或者Series
  • applymap(func) 将函数应用在DataFrame各个元素上
  • map(func) 将函数应用在Series各个元素上

numpy 与 pandas的更多相关文章

  1. python安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  2. 如何快速地从mongo中提取数据到numpy以及pandas中去

    mongo数据通常过于庞大,很难一下子放进内存里进行分析,如果直接在python里使用字典来存贮每一个文档,使用list来存储数据的话,将很快是内存沾满.型号拥有numpy和pandas import ...

  3. numpy、pandas

    numpy: 仨属性:ndim-维度个数:shape-维度大小:dtype-数据类型. numpy和pandas各def的axis缺省为0,作用于列,除DataFrame的.sort_index()和 ...

  4. [转] python安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  5. 1.理解Numpy、pandas

    之前一直做得只是采集数据,而没有再做后期对数据的处理分析工作,自己也是有意愿去往这些方向学习的,最近就在慢慢的接触. 首先简单理解一下numpy和pandas:一.NumPy:1.NumPy是高性能计 ...

  6. numpy和pandas简单使用

    numpy和pandas简单使用 import numpy as np import pandas as pd 一维数据分析 numpy中使用array, pandas中使用series numpy一 ...

  7. Python入门之安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了. 首要条件,python版本必 ...

  8. python及numpy,pandas易混淆的点

    https://blog.csdn.net/happyhorizion/article/details/77894035 初接触python觉得及其友好(类似matlab),尤其是一些令人拍案叫绝不可 ...

  9. 【转载】python安装numpy和pandas

    转载:原文地址 http://www.cnblogs.com/lxmhhy/p/6029465.html 最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装 ...

  10. linux离线搭建Python环境及安装numpy、pandas

    1.安装python2.7.3 Cent OS 6.5默认装的有python2.6.6,需要重新安装python2.7.3下载地址:https://www.python.org/downloads/s ...

随机推荐

  1. Python 8 - Socket编程进阶

    本节内容:    1.Socket语法及相关    2.SocketServer实现多并发 Socket语法及相关 socket 概念 socket本质上就是在2台网络互通的电脑之间架设一个通道,两台 ...

  2. eclipse使用异常An error has occurred.see error log for more details eclipse

    eclipse使用异常An error has occurred.see error log for more details eclipse 解决Eclipse,MyEclipse出现An erro ...

  3. Mysql多实例安装笔记

    参考: 系统:KaliLinux (x86_64) 软件下载 1.下载地址: 2.选择5.6版本 安装 1.准备文件和目录 tar -zxvf mysql-5.6.40-linux-glibc2.12 ...

  4. React的Element的创建和render

    React的Element是React应用程序的最小构建块,它是用来描述我们在屏幕上看到的浏览器页面上的内容. 在React中构建 Element 有两种方式: 1.JSX的方式,JSX不是React ...

  5. NAND Flash底层原理,SLC MLC TLC比较【转】

    转自:https://blog.csdn.net/qq_39560607/article/details/81714145 版权声明:请注明转载自Christa_RJ https://blog.csd ...

  6. python3+requests库框架设计02-封装日志类

    首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ...

  7. C++类的继承中构造函数和析构函数调用顺序例子

    /*当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止.简而言之,对象是由“底层向上”开始构造的.因为,构造函数 ...

  8. 数据库join union 区别

    join 是两张表做交连后里面条件相同的部分记录产生一个记录集,union是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集. 1.JOIN和UNION区别  join 是两张表做交连后里 ...

  9. v-on 绑定自定义事件

    每个 Vue 实例都实现了事件接口,即: 使用 $on(eventName) 监听事件 使用 $emit(eventName) 触发事件 Vue 的事件系统与浏览器的 EventTarget API  ...

  10. [1]字符串按中文符占3位进行指定长度剪切[2]Double类型截取指定长度(指定长度=整数位+小数位)

    /** 将中文字符串剪切为在当前db2(编码GBK)中所占用的长度*/ public String cutStringForDb2(String src,Integer size) { int len ...