NumPy数值计算基础PPT课件_第1页
NumPy数值计算基础PPT课件_第2页
NumPy数值计算基础PPT课件_第3页
NumPy数值计算基础PPT课件_第4页
NumPy数值计算基础PPT课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大数据,成就未来大数据,成就未来NumPy 数值计算基础12/1/2021 215:02 数据是用于载荷信息的物理符号。 1.3认识数据认识数据数据的4个特征: 数据有“型”和“值”之分。 数据受数据类型和取值范围的约束。 数据有定性表示和定量表示之分。 数据应具有载体和多种表现形式。 315:02数值型,如:长度、宽度、评分 方法:极值和分位点、均值和标准差、变量间相关性有序型,如:等级( A,B,C ),空气质量(优、良、轻度污染、中度污染、重度污染、严重污染)类别型,如:性别(男、女),手机品牌(Apple、Vivo、华为) 方法:统计分布、直方图等噪声数据(脏数据),如:缺失值、重复值

2、、无效数据等 方法:数据清洗,统计分布等数据类型数据类型科学计算最常用的数据类型为:数值型 415:02NumPy(Numerical Python)是一个高性能科学计算和数据分析的基础包。认识认识NumPyNumPy 快速高效的多维数组对象 ndarray(n-dimensional array object)。 对数组执行元素级的计算以及直接对数组执行数学运算的函数(universal function object)。 读写硬盘上基于数组的数据集的工具。 线性代数运算、傅里叶变换,以及随机数生成的功能。 将 C、C+、Fortran 代码集成到 Python 的工具。 515:02为什么

3、使用Numpy?认识认识NumPyNumPy 便捷 对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多。 高效 NumPy的大部分代码都是用C语言写成的,这使得NumPy比纯Python代码高效得多。 615:02认识认识NumpyNumpy 715:02认识认识NumpyNumpy 815:02import numpy as np认识认识NumpyNumpyNumPy的引用引入模块的别名虽然别名可以自己命名,但是强烈建议使用上述约定的别名。 915:021掌握 NumPy 矩阵与通用函数利用 NumPy 进行统计分析目录目录掌握 NumPy 数组对象 ndarray2

4、3 1015:02ndarray概述概述ndarray是存储单一数据类型的多维数组,由两部分构成: 实际的数据 描述这些数据的元数据(数据维度、数据类型等)data(数据存储指针)Strides(跨度元组)type(数据类型)ndim(数据维度)数据1数据2数据数据元数据数据 1115:02ndim:维数shape:尺寸dtype:数据类型size:元素个数Itemsize: 元素大小ndarray数组属性数组属性数组属性查看 1215:02ndim:维数shape:尺寸dtype:数据类型size:元素个数Itemsize: 元素大小ndarray数组属性数组属性数组属性查看 1315:02

5、ndarray的数据类型的数据类型 1415:02ndarray的数据类型的数据类型 1515:02ndarray的数据类型的数据类型 1615:02创建创建ndarry数组数组123a = np.array(1,2,3)b = np.array(1,2,3, 4,5,6)1234561. 使用array函数来创建数组创建一维数组创建二维数组 1715:02创建创建ndarry数组数组arange:通过指定开始值、终值和步长来创建一维数组a = np.arange (0,2,0.5)0.0.51.1.5linspace:通过指定开始值、终值和元素个数来创建一维数组a = np.linspace

6、 (0, 3, 4)0.1.2.3.2. 使用内置函数创建数组 1815:02创建创建ndarry数组数组2. 使用内置函数创建数组 zeros: 创建一个用指定形状用0填充的数组a = np.zeros (2, 3)logspace:构建等比数组a = np.logspace (0,2,3)0101000.0.0.0.0.0. 1915:02创建创建ndarry数组数组 diag: 创建一个除对角线全为0的数组a = np.zeros (1,2, 3)eye:创建一个主对角线为1,其它为0的数组a = np.eye (2,3)1.0.0.0.2.0.0.0.3.1.0.0.0.1.0.2.

7、使用内置函数创建数组 2015:02创建创建ndarry数组数组ones:创建一个用指定形状用1填充的数组a = np.ones (2,3)1.1.1.1.1.1.2. 使用内置函数创建数组 2115:02ndarry数组的创建数组的创建rand:生成均匀分布的随机数数组randn:生成一个符合标准正态分布的数组(均值0,方差1)3. 通过生成随机数的np.random模块构建 2215:02创建创建ndarry数组数组3. 通过生成随机数的np.random模块构建randint:生成一个给定上下限范围的随机数数组 2315:02函数函数说明说明seed确定随机数生成器的种子。permuta

8、tion返回一个序列的随机排列或返回一个随机排列的范围。shuffle对一个序列进行随机排序。binomial产生二项分布的随机数。normal产生正态(高斯)分布的随机数。beta产生beta分布的随机数。chisquare产生卡方分布的随机数。gamma产生gamma分布的随机数。uniform产生在0,1)中均匀分布的随机数。创建创建ndarry数组数组random模块常用随机数生成函数3. 通过生成随机数的np.random模块构建 2415:021. 基础索引 一维数组的索引与Python的列表索引功能一致 多维数组的索引:多维数组每一个维度有一个索引,各个维度之间用逗号隔开 arr

9、r1:r2, c1:c2 arr1,1 等价 arr11 : 代表某个维度的数据索引与切片索引与切片 2515:02索引与切片索引与切片一维数组 2615:02索引与切片索引与切片二维数组 2715:02 2. 整数序列索引利用整数数组进行索引索引与切片索引与切片 2815:023. 布尔索引 布尔值多维数组 arrcondition, condition可以是多个条件组合 注意,多个条件组合要使用 & |,而不是and or索引与切片索引与切片XX % 4 = 0X % 4 = 0 2915:02布尔索引索引与切片索引与切片 3015:02 改变数组形状变换数组形态变换数组形态 re

10、shape:在不改变数据的情况下为数组赋予新的形状 resize: 改变自身数组的形态 数组展平 ravel:将多维数组变一维数组,横向展平 flatten:将多维数组变一维数组,可以横向展平,也可以纵向展平 数组组合 hstack:数组横向组合 vstack:数组纵向组合 concatenate: 实现数组的横向组合和纵向组合 数组分割hsplit: 对数组按列进行分割vsplit: 对数组按行进行分割split: 数据分割 3115:02变换数组形态变换数组形态改变数组形状1. reshape(shape, order=C):在不改变数据的情况下为数组赋予新的形状 3215:02resha

11、pe(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变resize(shape) 与.reshape()功能一致,但修改原数组变换数组形态变换数组形态改变数组形状2. resize(shape): 改变自身数组的形态 3315:02变换数组形态变换数组形态数组展平 numpy中的ravel()、flatten() 都有将多维数组转换为一维数组的功能。 reshape(-1)也可以“拉平”多维数组 3415:02数组展平 当指定order=F表示纵向展开 ravel():如果没有必要,不会产生源数据的副本 flatten():返回源数据的副本 变换数组形态变换数组形态 35

12、15:02数组组合1. hstack:数组横向组合 该函数相当于沿第一个轴连接(axis=1),除了一维数组的组合可以是不同长度外,其它数组组合时,除了第二个轴的长度可以不同外,其它轴的长度必须相同。变换数组形态变换数组形态 3615:02数组组合1. hstack:数组横向组合 该函数相当于沿第二个轴连接(axis=1),除了一维数组的组合可以是不同长度外,其它数组组合时,除了第二个轴的长度可以不同外,其它轴的长度必须相同。变换数组形态变换数组形态 3715:02数组组合2. vstack:数组纵向组合 该函数相当于沿第一个轴连接(axis=0),除了一维数组的组合可以是不同长度外,其它数组

13、组合时,除了第二个轴的长度可以不同外,其它轴的长度必须相同。变换数组形态变换数组形态 3815:02数组组合3. concatenate(tup),axis) 实现数组的横向组合和纵向组合 axis = 1 时,等同于 np.hstack axis = 0 时,等用于 np.vstack 变换数组形态变换数组形态 3915:02数组分割1. hsplit将数组横向分割成大小相同的子数组2. vsplit将数组纵向分割成大小相同的子数组变换数组形态变换数组形态 4015:02数组形状处理数组形状处理 4115:022掌握 NumPy 数组对象 ndarray利用 NumPy 进行统计分析目录目录

14、掌握 NumPy 矩阵与通用函数13 4215:02使用mat函数创建矩阵: matr1 = np.mat(1 2 3;4 5 6;7 8 9)使用matrix函数创建矩阵:matr2 = np.matrix(123,456,789)使用bmat函数合成矩阵:np.bmat(arr1 arr2; arr1 arr2)创建创建NumPy矩阵矩阵创建与组合矩阵 4315:02矩阵与数相乘:matr1*3矩阵相加减:matr1matr2矩阵相乘:matr1*matr2矩阵对应元素相乘:np.multiply(matr1,matr2)矩阵特有属性:创建创建NumPy矩阵矩阵矩阵的运算属性属性说明说明T

15、返回自身的转置H返回自身的共轭转置I返回自身的逆矩阵A返回自身数据的2维数组的一个视图 4415:02四则运算:加(+)、减(-)、乘(*)、除(/)、幂(*)。数组间的四则运算表示对每个数组中的元素分别进行四则运算,所以形状必须相同。比较运算:、=、=、!=。比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果。逻辑运算:np.any函数表示逻辑“or”,np.all函数表示逻辑“and”。运算结果返回布尔值。认识认识ufunc函数函数全称通用函数(universal function object ),是一种能够对数组中所有元素进行操作的函数。 4515:02认识认识uf

16、unc函数函数四则运算四则运算 4615:02常用的通用函数 ceil(), 向上最接近的整数 floor(), 向下最接近的整数 rint(), 四舍五入 isnan(), 判断元素是否为 NaN(Not a Number) multiply(),元素相乘,等同于数组的 * 操作(注意,不是矩阵的乘法操作) divide(), 元素相除,等同于数组的 / 操作 认识认识ufunc函数函数元素级运算 4715:02认识认识ufunc函数函数比较运算:对两个形状相同的numpy数组进行大于比较得到的结果是一个与数组的形状相同的numpy数组,数组中元素的数据类型为布尔类型 4815:02认识认识

17、ufunc函数函数逻辑运算 4915:02广播(broadcasting)是指不同形状的数组之间执行算术运算的方式。需要遵循4个原则。 让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐。 输出数组的shape是输入数组shape的各个轴上的最大值。 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错。 当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值。认识认识ufunc函数函数广播机制 5015:02广播机制向量化向量化一维数组的广播机制二维数组的广播机制基于numpy,将num_arr

18、= np.array(1,3,5,6,8)转化为2,6,10,12,16num_arr*2 for i in range(len(num_arr): num_arri=num_arri*2num_arr+num_arrnum_arr+2BD多选题AC CA 5215:023掌握 NumPy 数组对象 ndarray掌握 NumPy 矩阵与通用函数目录目录利用 NumPy 进行统计分析12 53 NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式读写文件读写文件 读取/保存二进制格式文件 save 函数是以二进制的格式保存数据。 格式: np.save (“./save_a

19、rr ”, arr1) load 函数是从二进制的文件中读取数据。 格式: np.load(./ save_arr.npy) savez 函数可以将多个数组保存到一个文件中。 格式: np.savez(./savez_arr,arr1,arr2) 读取/保存文本格式(TXT CSV 格式)文件 savetxt 函数是将数组写到某种分隔符隔开的文本文件中。 格式: np.savetxt(./arr.txt, arr, fmt=%d, delimiter=,) loadtxt 函数执行的是把文件加载到一个二维数组中。 格式: np.loadtxt(./arr.txt,delimiter=,) genfromtxt 函数面向的是结构化数组和缺失数据。 格式: np.genfromtxt(./arr2.txt, delimiter = ,) 54sort函数是最常用的排序方法。 arr.sort()sort函数也可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序; axis=0为沿纵轴排序。使用数组进行简单统计分析使用数组进行简单统计分析直接排序argsort函数返回值为重新排序值的下标。 arr.argsort()lexsort函数返回值是按照最后一个传入数据排序的。 np.lexsort(a,b,c)间接排

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论