入门实践,Python数据分析
1-2 Anaconda和Jupyter notebook介绍
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
Anaconda是什么
1 最著名的Python数据科学平台
2 750流行的Python&R包
3 跨平台:windows,Mac,Linux
4 condaL:可扩展的包管理工具
5 免费分发
6 非常活跃的社区 复制代码
Anaconda的安装
1 下载地址:https://www.anaconda.com/download/
2 检验是否安装成功
cd ~/anaconda
anaconda bin/conda --version 复制代码
Conda的Environment管理
1 创建一个新的environment
conda create --name python34 python=3.4 2 激活一个environment
activate python34 # for Windows
source activate python34 # for linuc & Mac 3 退出一个environment
deactivate python34 # for Windows
source deactivate python34 4 删除一个environment
conda remmove --name python34 --all 复制代码
Conda的package的管理
1 Conda的包管理有点类似pip
2 安装一个Python包
conda install numpy 3 查看已安装的Python包
conda list
conda list -n python34 # 查看指定环境安装的Python包 4 删除一个Python包
conda remove -n python34 numpy 复制代码
什么是iPython
- 一个强大的交互式shell
- 是jupyter的kernel
- 支持交互式数据分析和可视化
什么是Jupyter Notebook
- 前身是IPython notebookl
- 一个开源的web application
- 可以创建和分享包含代码,视图,注释的文档、
- 可以用于数据统计,分析,建模,机器学习等领域
notebook的文件格式(.ipynb)
- 由Ipython Notebook 定义的一种格式(json)
- 可以读取在线数据,CSV/XLS文件
- 可以转化为其他格式,(py,html.pdf,md等)
NBViewer
- 一个online的ipynb格式notebook展示工具
- 可以通过URL分享
- Github集成了NBViewer
- 通过转换器轻松集成到Blogs Emails,Wikis,Books
实验室环境
- 在Windows/Mac/Linux上安装Anaconda
- 在使用Python3.6作为基础环境
- 使用Jupyter Notebook 作为编程IDE
1-4 Anaconda在windows上安装演示
安装之后,按住win
点击jupyter botebook
浏览器输入localhost:8888
1-5 Anaconda在Linux上的安装演示
# 在linux机器中 wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh sh Anaconda3-2020.02-Linux-x86_64.sh # 进入命令号
1 按回车
2 yes
3 选择安装目录,这个时候目录不变,回车
需要两分钟
4 安装完之后需要选择什么什么玩意,选择yes 在根目录中会看见一个anaconda的文件夹,进入文件夹可以看到很多目录
cd ~/anaconda3
cd bin 可以很多的文件夹
./anaconda --version # 查看conda版本号 ./jupyter notebook --no-browser # 在本地运行jupyter #要是抛错Running as root is not recommended. Use --allow-root to bypass.
./jupyter notebook --no-browser --allow-root # 但是这样只能本地访问jupyter,如何实现远程访问呢?
ssh端口转发
# 在本地执行端口转发命令
ssh -N -f -L localhost:8888:localhost:8888 root@{ip地址}
>>>password # 本地浏览器执行localhost:8888,就可以看见linux上的jupyter的页面了
执行print('hello world') # jupyter执行命令行
:ifconfig 复制代码
1-6 Jupyter-notebook的使用演示
进入jupeter浏览器中之后
点击new-->Terminal,显示命令行界面 # 换目录执行jupeter,并把当前目录当做工作目录
/root/anaconda3/bin/jupyter notebook --no-browser --allow-root 复制代码
第2章 Numpy入门
2-1 数据科学领域5个常用Python库
numpy
scipy
Pandas
Matplotlib
Scikit-learn
复制代码
Number
数据处理里面最基础的库
- N维数组(矩阵),快速高效,矢量数学运算
- 高效的index,不需要循环
- 开源免费跨平台,运行效率足以和C/Matlab媲美
Scipy
- 依赖于Numpy
- 专为科学和工程设计
- 实现了多种常用科学计算:线性代数,傅里叶变换,信号和图像处理
Pandas
- 结构化数据分析利器(依赖Numpy)
- 提供了多种高级数据结构:Time-Series,DataFrame,Panel
- 强大的数据索引和处理能力
Matplotlib
- Python 2D绘图领域使用最广泛的套件
- 基本能取代Matlab的绘图功能(散点,曲线,柱形等)
- 通过mplot3d可以绘制精美的3D图
Scikit-learn
- 机器学习的Python模块
- 建立在Scipy之上,提供了常用的机器学习算法:聚类,回归
- 简单易学的API接口
2-2 数学基础回顾之矩阵运算
基本概念
- 矩阵:是指1xn或者nx1的矩阵
- 标量:1x1的矩阵
- 数组:N维的数组,是矩阵的延伸
特殊矩阵
矩阵加减运算
- 相加,相减的两个矩阵必须要有相同的行和列
- 行和列对应元素相加减
数组乘法(点乘)
矩阵乘法
清华大学出版的线性代数
http://www.wdfxw.net/goDownFiles.aspx?key=92039718
复制代码
2-3 Array的创建及访问
import munpy as np
# create from python list
list_1 = [1,2,3,4] array_1 = np.array(list_1) # 生成一个一维数组 list_2 = [6,7,8,9]
array_2 = np.array([list_1,list_2]) # 创建一个二维数组 print(array_2)
print(array_2.size) #数组里元素的个数
print(array_2.shape) # 查看矩阵或数组的维数
print(array_2.dtype) #数组元素的类型 array_4 = np.arange(1,10,2) # 使用arange创建数组
print(array_4) # array([1, 3, 5, 7, 9])
np.zeros(5) # 全0矩阵 array([0., 0., 0., 0., 0.]) np.zeros([2,3]) # 多维全0矩阵
array([[0., 0., 0.],
[0., 0., 0.]]) np.eye(5) # 单位矩阵
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]]) # 数组的访问
a = np.arange(10)
print(a) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a[2] # 2
a[1:5] # array([1, 2, 3, 4])
b = np.array([[1,2,3,4],[5,6,7,8]]) # 矩阵
b[1,0] # 矩阵取值(第二个数组第一个值) # 5
c = np.array([[1,2,3],[4,5,6],[7,8,9]])
c[:2,1:] # 第一个元素是行,第二个元素是列
#array([[2, 3],[5, 6]]) 复制代码
2-4 数组与矩阵运算
快速创建数组
import numpy as np np.random.randn(10) # 创建一个十维数组,且是动态分布的 """
array([-0.7512065 , 0.97527973, -1.24433992, 0.86890475, -0.51251532,
-0.02522675, -0.40664444, 0.66399272, -0.94669869, 1.52843227])
"""
np.random.randint(10) # 返回一个10以内的随机整数 np.random.randint(10, size=(2,3)) #返回一个值在10以内的2x3的数组
"""
array([[1, 8, 1],
[6, 1, 8]])
""" np.random.randint(10,size=20).reshape(4,5) #返回一个大小为20的4x5的整数随机数组
"""
array([[6, 6, 4, 8, 9],
[0, 9, 1, 0, 8],
[6, 2, 6, 1, 3],
[5, 4, 8, 9, 2]])
""" 复制代码
数组的运算
a = np.random.randint(10,size=20).reshape(4,5)
b = np.random.randint(10,size=20).reshape(4,5)
# 生成的a,b都是一个元素值小于10,数量为20的一个4x5的多维数组 a+b # 多维数组相加减就是对应位置元素值相加
a-b # 多维数组相加减就是对应位置元素值相减
a * b # 多维数组相乘就是对应位置元素值相乘
a / b # 多维数组相乘就是对应位置元素值做除法--有的时候会抛错,是因为如果数学运算中0不能做除数 复制代码
矩阵
矩阵的命令其实跟数组差不多
np.mat([[1,2,3],[4,5,6]]) #创建一个矩阵
"""
matrix([[1, 2, 3],
[4, 5, 6]])
""" # 数组转化为矩阵
a = np.array([1,2,3])
np.mat(a) # matrix([[1, 2, 3]]) 复制代码
矩阵的运算
A = np.mat(np.random.randint(10,size=20).reshape(4,5))
B = np.mat(np.random.randint(10,size=20).reshape(4,5))
A+B # 元素相加
A-B # 元素值相减 # 矩阵的乘法运算要求第一个值得行和第二个值的列数量一致
A = np.mat(np.random.randint(10,size=20).reshape(4,5))
B = np.mat(np.random.randint(10,size=20).reshape(5,4)) A * B
"""
matrix([[ 59, 137, 69, 80],
[ 77, 174, 124, 142],
[ 48, 128, 44, 124],
[ 54, 121, 102, 94]])
""" 复制代码
Array常用函数
import numpy as np a = np.random.randint(10, size=20).reshape(4,5)
np.unqiue(a) # 数组里面的唯一值 sum(a) #将矩阵的所有的列的和重新组合成一个数组
"""
matrix([[21, 16, 24, 17, 9]])
""" sum(a[0]) # 计算某一行的值
sum(a[:,0]) # 计算某一列的值 A.max() #查看数组中最大值 a.max(a[0]) # 查看第一行的最大值
a.max(a[:,0]) # 查看第一列的最大值 复制代码
使用pickle序列化Numpy array
import numpy as np
x = np.arange(10) # 将数组保存到硬盘
f = open('x.pk1','wb')
pickle.dump(x,f) # 读取硬盘中的数组
f = open('x.pk1','rb')
pickle.load(f) np.save('one_array',x) # 将数组序列化到硬盘
np.load('one_array.npy') # 读取文件 a = np.arange(10)
b = np.arange(20)
np.savez('two_array.npz',a=a,b=b) # 一个文件保存多个数组
c = np.load('two_array.npz') # 取数组
c['a']
c['b']
复制代码
入门实践,Python数据分析的更多相关文章
- Python数据分析入门与实践 ✌✌
Python数据分析入门与实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 这是一个数据驱动的时代,想要从事机器学习.人工智能.数据挖掘等前沿技术,都离不开 ...
- Python数据分析入门与实践
Python数据分析入门与实践 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关 ...
- 快速入门 Python 数据分析实用指南
Python 现如今已成为数据分析和数据科学使用上的标准语言和标准平台之一.那么作为一个新手小白,该如何快速入门 Python 数据分析呢? 下面根据数据分析的一般工作流程,梳理了相关知识技能以及学习 ...
- Python数据分析入门
Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内 ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- 0.Python 爬虫之Scrapy入门实践指南(Scrapy基础知识)
目录 0.0.Scrapy基础 0.1.Scrapy 框架图 0.2.Scrapy主要包括了以下组件: 0.3.Scrapy简单示例如下: 0.4.Scrapy运行流程如下: 0.5.还有什么? 0. ...
- 3个月零基础入门Python+数据分析,详细时间表+计划表分享
大家好,我是白云. 今天想给大家分享的是三个月零基础入门数据分析学习计划.有小伙伴可能会说,英语好像有点不太好,要怎么办?所以今天我给大家分享的资源呢就是对国内的小伙伴很友好,还附赠大家一份三个月学 ...
- python数据分析入门(一)----安装pandas
打算入坑, python数据分析 , 所以下载了 <利用python数据分析>的电子书, 影印版 , 14年出版的 , 现在有很多工具对不上号, 但是整体思想还是不变的 , 所以准备工作要 ...
- 10个步骤教你如何安装Anaconda安装,Python数据分析入门必看
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
- 【读书笔记与思考】《python数据分析与挖掘实战》-张良均
[读书笔记与思考]<python数据分析与挖掘实战>-张良均 最近看一些机器学习相关书籍,主要是为了拓宽视野.在阅读这本书前最吸引我的地方是实战篇,我通读全书后给我印象最深的还是实战篇.基 ...
随机推荐
- Alexnet网络结构
最近试一下kaggle的文字检测的题目,目前方向有两个ssd和cptn.直接看看不太懂,看到Alexnet是基础,今天手写一下网络,记录一下啊. 先理解下Alexnet中使用的原件和作用: 激活函数使 ...
- Swift开发笔记
Swift开发笔记(一) 刚开始接触XCode时,整个操作逻辑与Android Studio.Visual Studio等是完全不同的,因此本文围绕IOS中控件的设置.事件的注册来简单的了解IOS开发 ...
- bzoj1699[Usaco2007 Jan]Balanced Lineup排队*&bzoj1636[Usaco2007 Jan]Balanced Lineup*
bzoj1699[Usaco2007 Jan]Balanced Lineup排队 bzoj1636[Usaco2007 Jan]Balanced Lineup 题意: 询问区间最大值减区间最小值的差. ...
- IE9+的树状下拉菜单,支持多选
//JS核心代码function treeBox(Config){var el=eval(Config.el);var w=Config.width;var h=Config.height;var d ...
- OSCP Learning Notes - File Transfers(3)
Metasploit Attack Target Server: IE8 on WinXP 1.Start the Metasploit. setoolkit 2.Select 2)Website A ...
- Ethical Hacking - Overview
Hacking is gaining unauthorized access to anything. Preparation Setting up a lab and installing need ...
- T133305 57级返校测试重测-T1-数字配对
大致题意: 给定偶数个的数字,操作使得两两配对后的最大值最小. 基本思路: 先排序,然后设i=1,j=n(序列以下标1开始), 每次配对为a[i]+a[j],然后++i,--j. 最后找到最大的配对结 ...
- [开源硬件DIY] 自制一款精致炫酷的蓝牙土壤温湿度传感器,用于做盆栽呵护类产品(API开放,开发者可自行DIY微信小程序\安卓IOS应用)
目录 前言: 1. 成品展示 2. 原理图解析 3. pcb设计 4. 嵌入式对外提供接口 4.1 蓝牙广播 4.2 蓝牙服务和属性 4.3 数据包格式 4.4 数据通信模型 重要 . 前言: 本期给 ...
- selenium自动爬取网易易盾的验证码
我们在爬虫过程中难免会遇到一些拦路虎,比如各种各样的验证码,时不时蹦出来,这时候我们需要去识别它来继续我们的工作,接下来我将爬取网一些滑动验证码,然后通过百度的EasyDL平台进行数据标注,创建模型, ...
- Nginx安全优化与性能调优
目录 Nginx基本安全优化 隐藏Nginx软件版本号信息 更改源码隐藏Nginx软件名及版本号 修改Nginx服务的默认用户 修改参数优化Nginx服务性能 优化Nginx服务的worker进程数 ...