今日内容概要

  • numpy剩余的知识点
  • pandas模块

今日内容详细

二元函数

加                   add
减 sub
乘 mul
除 div
平方 power

数学统计方法

sum                 求和
cumsum 累计求和
mean 对整体求平均数
std 标准差
var 方差
min
max
argmin 求最小元素对应的索引
armax 求最大元素对应的索引

随机数

np.random.rand(2.5) # 随机0-1之间的小数
array([[0.65863779, 0.9994306 , 0.35758039, 0.02292617, 0.70794499],
[0.15469852, 0.97426284, 0.25622487, 0.20442957, 0.95286145]])
np.random.randint(1,10) # 取给定的数之间的随机整数
4
np.random.choice([111,222,333,444,555]) # 从给定的数组中随机的取一个
333
res = [1,2,3,4,5,6,7,8,9,10,'J','Q','K','A']
np.random.shuffle(res) # 随机打乱顺序
res
[1, 'Q', 'J', 6, 8, 'K', 2, 3, 'A', 7, 10, 4, 9, 5]
np.random.uniform([100,10,11,22]) # 指定数组位置产生对应的随机数
array([83.53838005, 5.4824623 , 4.85571734, 7.33774372])

特殊值含义

1、nan(Not a Number):不等于任何浮点数(nan != nan)
表示的意思是缺失值(pandas里面)
--------------------------------------------- 2、inf(infinity):比任何浮点数都大
---------------------------------------------

Pandas模块

1.非常强大的python数据分析包
2.基于numpy构建的 所以学习起来会有一种似曾相识的感觉
2.pandas奠定了python在数据分析领域的一哥地位

主要功能

1.具有两大非常灵活强大的数据类型
series
DataFrame
2.集成时间模块
3.提供丰富的数学运算和操作(基于numpy)
4.针对缺失数据操作非常灵活

两大数据结构

python中的字典
key:value的形式
key是对value的描述性信息
value就是具体的数据
res = {
'username':'jason',
'password':123,
'hobby':'read'
}
  • Series

    类似于字典的带有标签的数组
  • DataFrame

    其实类似于excel表格数据

    都是基于numpy构建出来的

    公司中使用频繁的是DataFrame,而Series是构成DataFrame的基础,即一个DataFrame可能由N个Series构成

基本使用

一定要先导入pandas,约定俗成的导入语句书写
import pandas as pd

数据结构之Series

是一种类似于一维数组对象,由数据和相关的标签(索引)组成
Series的创建方式总共有四种 左侧In[*] 正在运行加载
In[数字] 加载或者运行成功
"""
在python中导入模块的时候 只会加载一次
之后导入相同的模块不会继续加载而是直接使用
上一次加载的结果
python会将所有导入的模块单独存放到一个文件中
导入模块的时候会自动去文件中查找 如果有则直接使用
python解释器关闭之后该文件就会清空
""" #第一种
# Series的创建
res = pd.Series([111,222,333,444,555])
res
0 111
1 222
2 333
3 444
4 555
dtype: int64 # 默认会自动帮你用索引作为数据的标签 # 第二种
# 2.指定元素的标签:个数一定要一致
res1 = pd.Series([111,222,333,444,555],index=['a','b','c','d','e'])
res1
a 111
b 222
c 333
d 444
e 555
dtype: int64
# 第三种
# 3.直接放字典
res2 = pd.Series({'username':'jason','password':123,'hobby':'read'})
res2
username jason
password 123
hobby read
dtype: object
# 第四种
pd.Series(0,index=['a','b','c'])
a 0
b 0
c 0
dtype: int64
'''
Series的结构
左侧是标签
右侧是数据
'''

缺失数据

'''前戏'''
# 第一步,创建一个字典,通过Series方式创建一个Series对象
st = {"tony":18,"yang":19,"bella":20,"cloud":21}
obj = pd.Series(st)
obj
tony 18
yang 19
bella 20
cloud 21
dtype: int64
-------------------------------------------- # 第二步
a = {'tony','yang','cloud','satan'} # 定义一个索引变量
------------------------------------------- # 第三步
obj1 = pd.Series(st,index=a)
obj1 # 将第二步定义的a变量作为索引传入 yang 19.0
tony 18.0
satan NaN
cloud 21.0
dtype: float64
# 因为rocky没有出现在st的键中,所以返回的是缺失值

特殊值的处理

1.isnull
2.notnull
3.dropna
4.fillna obj1.isnull()
yang False
tony False
satan True
cloud False
dtype: bool obj1.notnull()
yang True
tony True
satan False
cloud True
dtype: bool 3、
过滤缺失值 # 布尔型索引
obj1[obj1.notnull()]
yang 19.0
tony 18.0
cloud 21.0
dtype: float64 obj1.dropna() # 默认不会改变原来数据
yang 19.0
tony 18.0
cloud 21.0
dtype: float64 obj1.dropna(inplace=True) # 该参数默认是Flase不修改数据本身
obj1
tony 18.0
yang 19.0
cloud 21.0
dtype: float64 obj1.fillna(666) # 默认也是不修改原来的数据的 要想直接修改加参数inplace=True即可
yang 19.0
tony 18.0
cloud 21.0
dtype: float64
yang 19.0
tony 18.0
satan NaN
cloud 21.0
dtype: float64 '''
上述四个方法中
方法3和4是使用频率最高的
'''

Series的各种特性

基于跟Numpy操作一致
1.ndarray直接创建Series:Series(array)
Series可以直接将numpy中的一维数组转换(这里必须只能是一维) res = pd.Series(np.array([1,2,3,4,5,6]))
res
0 1
1 2
2 3
3 4
4 5
5 6
dtype: int32 res1 = pd.Series(np.array([[1,2,3,4],[5,6,7,8]]))
res1 # 报错
Exception Traceback (most recent call last)
<ipython-input-30-e48b7149c3f9> in <module>
----> 1 res1 = pd.Series(np.array([[1,2,3,4],[5,6,7,8]]))
2 res1 C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py in __init__(self, data, index, dtype, name, copy, fastpath)
309 data = data.copy()
310 else:
--> 311 data = sanitize_array(data, index, dtype, copy, raise_cast_failure=True)
312
313 data = SingleBlockManager(data, index, fastpath=True) C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\internals\construction.py in sanitize_array(data, index, dtype, copy, raise_cast_failure)
727 elif subarr.ndim > 1:
728 if isinstance(data, np.ndarray):
--> 729 raise Exception("Data must be 1-dimensional")
730 else:
731 subarr = com.asarray_tuplesafe(data, dtype=dtype) Exception: Data must be 1-dimensional 2.与标量运算
res = pd.Series([11,22,33,44,55])
res
0 11
1 22
2 33
3 44
4 55
dtype: int64
res * 2
0 22
1 44
2 66
3 88
4 110
dtype: int64
3.两个Series运算
res * res
0 121
1 484
2 1089
3 1936
4 3025
dtype: int64 res1 = pd.Series([1,2,3,4],index=['a','b','c','d'])
res * res1
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
a NaN
b NaN
c NaN
d NaN
dtype: float64
4.通用函数abs
res3 = pd.Series([-1,-2,-3,-4,5,6])
res3.abs()
0 1
1 2
2 3
3 4
4 5
5 6
dtype: int64
5.布尔值索引
6.统计函数
7.从字典创建Series:Series(dic)
8.In运算
res4 = pd.Series({'username':'satan','password':987})
res4
username satan
password 987
dtype: object
'username' in res4
True for i in res4: # 跟python中的字典不一样 这里直接拿数据而不是标签
print(i)
satan
987
9.键索引与切片
10.其他函数等

小补充

# 当你的机器下载了anaconda之后无法正常呼起一个jupyter界面
1.先去你的cmd窗口检查是否可以正常运行
ipython
jupyter notebook
2.anaconda软件需要的资源其实有点多
3.你的默认浏览器没有设置好 在你的cmd窗口中输入jupyter notebook启动一个服务端, 不借助于anaconda
手动将网址复制到浏览器地址栏
直接使用即可

numpy最后一部分及pandas初识的更多相关文章

  1. pandas初识

    pandas初识 1.生成DataFrame型的数据 import pandas as pd import numpy as np dates = pd.date_range('20130101',p ...

  2. numpy、scipy、pandas

    以下分别是numpy.Scipy.pandas的简介.虽然这些包提供的一些结构比python自身的“更高级.更高效”,更高级是因为它们能完成更高级的任务,但是,学习的时候尽量不要和python割裂开认 ...

  3. Anaconda 安装和使用Numpy、Scipy、pandas、Scikit-learn

    Anaconda 安装和使用 https://www.cnblogs.com/liruihuan/p/9101613.html 最近看了些关于数据分析的书,想系统的整理下相关知识,算是学习笔记吧,也希 ...

  4. numpy,matplotlib,pandas

    目录 numpy模块 numpy简介 numpy使用 matplotlib模块 条形图 直方图 折线图 散点图+直线图 pandas模块 numpy模块 numpy简介 numpy官方文档:https ...

  5. Python_科学计算平台__pypi体系的numpy、scipy、pandas、matplotlib库简介

    1.numpy--基础,以矩阵为基础的数学计算模块,纯数学 存储和处理大型矩阵. 这个是很基础的扩展,其余的扩展都是以此为基础. 快速学习入口 https://docs.scipy.org/doc/n ...

  6. python-数据分析与展示(Numpy、matplotlib、pandas)---3

    笔记内容整理自mooc上北京理工大学嵩天老师python系列课程数据分析与展示,本人小白一枚,如有不对,多加指正 0.pandas基于Numpy实现的,前者注重应用,后者注重结构 1.Series类型 ...

  7. pandas 初识(四)

    Pandas 和 sqlalchemy 配合实现分页查询 Mysql 并获取总条数 @api.route('/show', methods=["POST"]) def api_sh ...

  8. pandas 初识(三)

    Python Pandas 空值 pandas 判断指定列是否(全部)为NaN(空值) import pandas as pd import numpy as np df = pd.DataFrame ...

  9. pandas 初识(一)

    基本内容 Series: Series 是有一组数据(numpy的数据类型 numpy.ndarray)以及一组数据标签(即索引)组成,可以看成一个一个定长的有序字典(索引值到数据值的一个映射) ob ...

随机推荐

  1. 洛谷P1002过河卒java100分题解

    题目描述如图: 这道题我以前以回溯的方法做,只能拿到60分 现在才发现是道动态规划题 解题思路: 创建一个(0,0)到终点打小的二维数组表示棋盘 每个坐标的值为此位置到终点的路数 最下方一排和最右方一 ...

  2. ==和equeals区别以及使用场景

    定义 ==:基本数据类型比较的是值或地址,引用数据类型比较的是地址. equals:在不重写的情况下,和==没有任何区别,重写,可以自定义比较规则,一般重写之后都让其比较值. Object类中的equ ...

  3. nested exception is java.lang.NoClassDefFoundError: org/fusesource/hawtbuf/UTF8Buffer

    前言:IDE管理maven项目,总是遇到各种莫名奇妙的问题,有的是导入了依赖,IDE确报包未找到,有的是IDE显示找到,但是控制台确报未找到,有以下几种方法可以解决 第一:确认自己导入的依赖是否有问题 ...

  4. JS 高阶函数

    笔记整理自:廖雪峰老师的JS教程 目录 概述 Array中的高阶函数 map(返回新的Array) reduce(返回新的Array) filter(返回新的Array) sort(返回同一Array ...

  5. 深入epoll

    转载请注明来源:https://www.cnblogs.com/hookjc/ 一. 介绍Epoll 是一种高效的管理socket的模型,相对于select和poll来说具有更高的效率和易用性.传统的 ...

  6. webpack打包如何统一js和css中图片资源路径

    目前项目应用的是vue-cli,自行修改了部分配置.三个环境的情况跟你差不多,测试/生产环境的层级比你还深. 先说下修改了哪些配置 1-build/utils.js下的cssLoaders内的gene ...

  7. Sping高质量博文链接集合

    1. Spring事务传播行为详解 https://segmentfault.com/a/1190000013341344

  8. 友盟分享,极光推送Demo

    友盟分享SDK下载及官方文档 http://dev.umeng.com/social/ios/detail-share 1.注册应用获取App友盟Appkey(556d14ad67e58eb08400 ...

  9. SpringDataJpa打印Sql详情(含参数)

    Spring Data Jpa打印Sql详情(带sql参数) 这里使用的是 log4jdbc,yml配置文件里的数据源配置也要做相应的修改 pom文件引入 <dependency> < ...

  10. pytest(4)-测试用例执行顺序

    前言 上一篇文章我们讲了在pytest中测试用例的命名规则,那么在pytest中又是以怎样的顺序执行测试用例的呢? 在unittest框架中,默认按照ACSII码的顺序加载测试用例并执行,顺序为:09 ...