数据处理之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()则可以构造随机数数组
数据处理之Numpy_第1张图片

2. 数组的属性

numpy的数组对象除了一些常规的属性外,也有几个类似转置、扁平迭代器等看起来更像是方法的属性。扁平迭代器也许是遍历多维数组的一个简明方法,下面的代码给出了一个例子。
数据处理之Numpy_第2张图片数据处理之Numpy_第3张图片

3. 数组的维度操作

numpy数组的存储顺序和数组的维度是不相干的,因此改变数组的维度是非常便捷的操作,除resize()外,这一类操作不会改变所操作的数组本身的存储顺序。
数据处理之Numpy_第4张图片

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

数组合并除了下面介绍的水平合并、垂直合并、深度合并外,还有行合并、列合并,以及concatenate()等方式。假
如你比我还懒,那就只了解前三种方法吧,足够用了。
数据处理之Numpy_第5张图片
数据处理之Numpy_第6张图片

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

拆分是合并的逆过程,概念是一样的,但稍微有一点不同:
数据处理之Numpy_第7张图片
数据处理之Numpy_第8张图片

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

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

与常数得:

数据处理之Numpy_第9张图片

与数组得:

在这里插入图片描述

判断数组是否相等:

数据处理之Numpy_第10张图片
数据处理之Numpy_第11张图片

7. 数组方法和常用函数

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

8. 矩阵对象

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

创建矩阵:

matrix对象可以使用一个Matlab风格的字符串来创建(以空格分隔列,以分号分隔行的字符串),也可以用数组来创建。
数据处理之Numpy_第14张图片
矩阵的特有属性:

矩阵有几个特有的属性使得计算更加容易,这些属性有:
数据处理之Numpy_第15张图片
矩阵乘法:

对ndarray对象而言,星号是按元素相乘,dot()函数则当作矩阵相乘。对于matrix对象来说,星号和dot()函数都是矩阵相乘。特别的,对于一维数组,dot()函数实现的是向量点乘(结果是标量),但星号实现的却不是差乘。
数据处理之Numpy_第16张图片
线性代数模块

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

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

你可能感兴趣的:(整理类)