数据处理之Numpy

一、目的

  1. 了解numpy库的基本功能
  2. 掌握Numpy库的对数组的操作与运算


二、工具:

  1. Anaconda
  2. Numpy


三、Numpy简介

Numpy 的英文全称为 Numerical Python,指Python 面向数值计算的第三方库。Numpy 的特点在于,针对 Python 内建的数组类型做了扩充,支持更高维度的数组和矩阵运算,以及更丰富的数学函数。Numpy 是 Scipy.org 中最重要的库之一,它同时也被 Pandas,Matplotlib 等我们熟知的第三方库作为核心计算库。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
Numpy包括了:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。Numpy和稀疏矩阵运算包scipy配合使用更加方便。



四、功能简介

1. 数组的创建

通常,我们用np.array()创建数组。如果仅仅是创建一维数组,也可以使用np.arange()或者np.linspace()的方法。np.zeros()、np.ones()、np.eye()则可以构造特殊的数据。np.random.randint()和np.random.random()则可以构造随机数数组
在这里插入图片描述

2. 数组的属性

numpy的数组对象除了一些常规的属性外,也有几个类似转置、扁平迭代器等看起来更像是方法的属性。扁平迭代器也许是遍历多维数组的一个简明方法,下面的代码给出了一个例子。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZrqKIGXG-1582355446630)(http://www.graph-edu.cn:9000/static/images/2016412248_0_1553436213.png)]在这里插入图片描述

3. 数组的维度操作

numpy数组的存储顺序和数组的维度是不相干的,因此改变数组的维度是非常便捷的操作,除resize()外,这一类操作不会改变所操作的数组本身的存储顺序。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FyADKz17-1582355446631)(http://www.graph-edu.cn:9000/static/images/2016412248_0_1553436805.png)]

4. 数组的合并(数组的水平合并,垂直合并,深度合并)

数组合并除了下面介绍的水平合并、垂直合并、深度合并外,还有行合并、列合并,以及concatenate()等方式。假
如你比我还懒,那就只了解前三种方法吧,足够用了。
在这里插入图片描述
在这里插入图片描述

5. 数组的拆分(数组的水平拆分,垂直拆分,深度拆分)

拆分是合并的逆过程,概念是一样的,但稍微有一点不同:
在这里插入图片描述
在这里插入图片描述

6. 数组运算(与常的四则运算,与数组的四则运算,判断数组是否相等)

数组和常数的四则运算,是数组的每一个元素分别和常数运算;数组和数组的四则运算则是两个数组对应元素的运算(两个数组有相同的shape,否则抛出异常)。

与常数得:

在这里插入图片描述

与数组得:

在这里插入图片描述

判断数组是否相等:

在这里插入图片描述
在这里插入图片描述

7. 数组方法和常用函数

数组对象本身提供了计算算数平均值、求最大最小值等内置方法,numpy也提供了很多实用的函数。为了缩减篇幅,下面的代码仅以一维数组为例,展示了这些方法和函数用法。事实上,大多数情况下这些方法和函数对于多维数组同样有效,只有少数例外,比如compress函数。
在这里插入图片描述
在这里插入图片描述

8. 矩阵对象

matrix是矩阵对象,继承自ndarray类型,因此含有ndarray的所有数据属性和方法。不过,当你把矩阵对象当数组操作时,需要注意以下几点:
• matrix对象总是二维的,即使是展平(ravel函数)操作或是成员选择,返回值也是二维的
• matrix对象和ndarray对象混合的运算总是返回matrix对象

创建矩阵:

matrix对象可以使用一个Matlab风格的字符串来创建(以空格分隔列,以分号分隔行的字符串),也可以用数组来创建。
在这里插入图片描述
矩阵的特有属性:

矩阵有几个特有的属性使得计算更加容易,这些属性有:
在这里插入图片描述
矩阵乘法:

对ndarray对象而言,星号是按元素相乘,dot()函数则当作矩阵相乘。对于matrix对象来说,星号和dot()函数都是矩阵相乘。特别的,对于一维数组,dot()函数实现的是向量点乘(结果是标量),但星号实现的却不是差乘。
在这里插入图片描述
线性代数模块

numpy.linalg 是numpy的线性代数模块,可以用来解决逆矩阵、特征值、线性方程组以及行列式等问题。
计算逆矩阵:

尽管matrix对象本身有逆矩阵的属性,但用numpy.linalg模块求解矩阵的逆,也是非常简单的。
在这里插入图片描述
计算行列式:
在这里插入图片描述
计算特征值和特征向量:
在这里插入图片描述
求解线性方程组:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值