Python数据分析与应用

1、Jupyter Notebook常用功能

快捷键

  • Esc”键:进入命令模式
  • Y” 键:切换到代码单元
  • M”键:切换到 Markdown 单元
  • B”键:在本单元的下方增加一单元
  • H”键:查看所有快捷命令
  • “ShiftEnter”组合键:运行代码

2、掌握NumPy数组对象ndarray

 打开numpy:先打开anaconda prompt,输入cd+空格+要保存在文件夹的路径,回车;

再输入jupyter notebook,回车;复制最后的链接到浏览器。

(打开之后不要关闭命令窗)

2.1 创建数组

数组属性

Python数据分析与应用_第1张图片

import numpy as np
arr1 = np.array([0.3,0.5,4.2])
#查看数组的基础属性
print(arr1.shape)
print(arr1.ndim)
print(arr1.dtype)

2.2 初识数组的特点

list1=[0.3,0.5,4.2]
arr1=np.array([0.3,0.5,4.2])
print(list1)
print(arr1)

#list1 ** 2         (列表不能直接平方)
print([i**2 for i in list1])
print(arr1 ** 2)

2.3 创建常用数组

创建数组并查看数组属性

Python数据分析与应用_第2张图片

Python数据分析与应用_第3张图片

 重新设置数组 的shape属性

Python数据分析与应用_第4张图片

 使用arange函数创建数组

Python数据分析与应用_第5张图片

使用linspace函数创建数组

使用logspace函数创建等比数列

 Python数据分析与应用_第6张图片

 Python数据分析与应用_第7张图片

使用zeros函数创建数组

使用eye函数创建数组

 Python数据分析与应用_第8张图片

 Python数据分析与应用_第9张图片

使用diag函数创建数组

使用ones函数创建数组

 Python数据分析与应用_第10张图片

 Python数据分析与应用_第11张图片

 2.5 数组数据类型

Python数据分析与应用_第12张图片

 数组数据类型转换

Python数据分析与应用_第13张图片

 Python数据分析与应用_第14张图片

 2.6 生成随机数

无约束条件下生成随机数

生成服从均匀分布的随机数

生成服从正态分布的随机数

Python数据分析与应用_第15张图片

 Python数据分析与应用_第16张图片Python数据分析与应用_第17张图片

 2.7 一维数组的索引

Python数据分析与应用_第18张图片

 一维数组的索引

Python数据分析与应用_第19张图片

逻辑型索引

Python数据分析与应用_第20张图片

2.8 多维数组索引

Python数据分析与应用_第21张图片

 Python数据分析与应用_第22张图片

2.9 求解距离矩阵

Python数据分析与应用_第23张图片

Python数据分析与应用_第24张图片

 2.10 变化数组shape

Python数据分析与应用_第25张图片

 使用ravel函数展平数组

Python数据分析与应用_第26张图片

 使用flatten函数展平数组

Python数据分析与应用_第27张图片

 组合数组

  • 使用hstack函数实现数组横向组合:np.hstack((arr1,arr2))
  • 使用vstack函数实现数组纵向组合:np.vstack((arr1,arr2))
  • 使用concatenate函数实现数组横向组合: np.concatenate((arr1,arr2),axis=1)
  • 使用concatenate函数实现数组纵向组合:np.concatenate((arr1,arr2),axis=0)

 切割数组

  • 使用hsplit函数实现数组横向分割:np.hsplit(arr1,2)
  • 使用vsplit函数实现数组纵向分割:   np.vsplit(arr,2)
  • 使用split函数实现数组横向分割:np.split(arr,2,axis=1)
  • 使用split函数实现数组纵向分割:np.split(arr,2,axis=0)

3、Numpy矩阵介绍

  • 使用mat函数创建矩阵: matr1 = np.mat("1 2 3;4 5 6;7 8 9")
  • 使用matrix函数创建矩阵:matr2 = np.matrix([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
  • 使用bmat函数合成矩阵:np.bmat("arr1 arr2; arr1 arr2")

矩阵的运算

  • 矩阵与数相乘:matr1*3
  • 矩阵相加减:matr1±matr2
  • 矩阵相乘:matr1*matr2
  • 矩阵对应元素相乘:np.multiply(matr1,matr2)

Python数据分析与应用_第28张图片

 3.1 认识ufunc函数

通用函数(universal function),是一种能够对数组中所有元素进行操作的函数。

  • 四则运算:加(+)、减(-)、乘(*)、除(/)、幂(**)。数组间的四则运算表示对每个数组中的元素分别进行四则运算,所以形状必须相同。
  • 比较运算:><==>=<=!=。比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果。
  • 逻辑运算:np.any函数表示逻辑“or”np.all函数表示逻辑“and”。运算结果返回布尔值。

3.2 通用函数的广播机制

  • 一维数组的广播机制 

Python数据分析与应用_第29张图片

二维数组的广播机制

Python数据分析与应用_第30张图片

 4、利用Numpy进行统计分析

NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式

  • save函数是以二进制的格式保存数据。 np.save("../tmp/save_arr",arr)
  • load函数是从二进制的文件中读取数据。 np.load("../tmp/save_arr.npy")
  • savez函数可以将多个数组保存到一个文件中。 np.savez('../tmp/savez_arr',arr1,arr2)
  • 存储时可以省略扩展名,但读取时不能省略扩展名。

 读取文本格式的数据

  • savetxt函数是将数组写到某种分隔符隔开的文本文件中。
  • np.savetxt("../tmp/arr.txt", arr, fmt="%d", delimiter=",")
  • loadtxt函数执行的是把文件加载到一个二维数组中。
  • np.loadtxt("../tmp/arr.txt",delimiter=",")
  • genfromtxt函数面向的是结构化数组和缺失数据。
  •  np.genfromtxt("../tmp/arr.txt", delimiter = ",")

 使用数组进行简单统计分析

直接排序

  • sort函数是最常用的排序方法:arr.sort()
  • sort函数也可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序; axis=0为沿纵轴排序。

 间接排序

  • argsort函数返回值为重新排序值的下标。 arr.argsort()
  • lexsort函数返回值是按照最后一个传入数据排序的。 np.lexsort((a,b,c))

 去重与重复数据

  • 通过unique函数可以找出数组中的唯一值并返回已排序的结果。
  • np.tile(Areps)
  • tile函数主要有两个参数,参数“A”指定重复的数组,参数“reps”指定重复的次数。
  • numpy.repeat(a, repeats, axis=None)
  • repeat函数主要有三个参数,参数“a”是需要重复的数组元素,参数“repeats”是重复次数,参数“axis”指定沿着哪个轴进行重复,axis = 0表示按行进行元素重复;axis = 1表示按列进行元素重复。
  • 这两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。

常用统计函数

 axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。

Python数据分析与应用_第31张图片

 

你可能感兴趣的:(python)