python数据分析实训_入门实践,Python数据分析

1-2 Anaconda和Jupyter notebook介绍

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

强大的数据索引和处理能力

MatplotlibPython 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']

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值