前置知识
1.python基础语言
2.重点Python内置数据结构:列表、字符串、元组、集合和字典。
3.序列的索引和切片操作。
4.列表推导式、集合推导式、字典推导式

5.lambda表达式
6.Python三个函数式编程基础的函数:fliter()、map()和reduce()。

2.Numpy是什么?
NumPy(Numerical Python的缩写)是一个开源的Python数据分析和科学计算库。
1.NumPyj Pandas(数据分析)、SciPy(科学计算)和Matplotlib(绘图库)基础。
2.图像处理OpenCV for Python中也大量使用NumPy。
3.NumPy官网:http://www.numpy.org/
4.Numpy源代码:https://github.com/numpy/numpy
1.3为什么选择Numpy
1.Python写出易读、整洁并且缺陷最少的代码。
2.Numpy底层是用C语言实现速度快。
3.NumPy提供数据结构(数组)比Python内置数据结构访问效率更高。
4.支持大量高维度数组与矩阵运算。
5.提供大量的数学函数库。
环境搭建
手动安装:要求python3.5及以上版本。pip 安装Numpy等库。 pip install Numpy。
安装IPython: 是一个加强版的Python解释器,python3.7以后开始自带安装。
pip install ipython
安装Anacoda:
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等1500多个科学包。
官网:https://www.anaconda.com

开发工具:
Python Shell, Python IDEL, IPython shell, IDE工具(Pycharm、Eclipse Pydev插件、Visual Studio Code、Spyder)、Jupyter Notebook。
编写Numpy程序:
NumPy库中最重要的数据结构是多维数组对象(ndarray),它是一系列同类型数据的集合,下标索引从0开始。
ndarray对象是用于存放同类型元素的多维数组。
ndarray中的每个元素在内存中都有相同存储大小的区域。
创建一维数组:

array函数创建ndarray对象,其中参数可以是如下类型:Python列表(list)、Python元组(tuple)。
指定数组数据类型:
Numpy支持的数据类型比Python内置的数据类型要多。

数组的dtype属性返回数组的类型。也可以在声明时指定数据类型。dtype=float。
更多数据类型:


类型代码和字节序

类型转换
使用数组对象(ndarray)的astype(dtype)方法可以转换数组元素的数据类型。

注意:astype(dtype)方法会创建一个新的数组对象。
3.3更多创建一维数组方式:
使用array()函数是将Python内置的列表或元素转换为Numpy数组对象,这样做效率不高。为此Numpy提供了很多创建数组的函数。arrange、linspace(线性等分向量)、logspace(对数等分向量)。



获取Numpy版本:printf(np.__version__)
编写Numpy程序以获取有关np.add函数的帮助信息: np.info(np.add) ; ipython提供的方式:np.add? 或 np.add??
从给定数组中提取所有奇数:

第四章 二维数组
4.1创建二维数组:

4.2重设数组维度:reshape
4.3.5使用identity和eye函数
identity函数可以创建单位矩阵,即对角线元素为1.0,其他元素为0.0.其语法格式如下:
numpy.identity(n,dtype=None);
eye函数可以创建二维数组,对角线元素为1.0,其他元素为0.0。其语法格式如下:

4.4数组的属性

4.6数组转置

5.1索引访问



5.2切片访问

6.3算术运算:
Numpy数组对象可以使用Python原生的算术运算符,加、减、乘、除都可以使用。规则很简单,即对对应的每一个元素运算即可。

形状相同的直接计算,不同的需要广播实现。
6.4广播
6.4.1标题广播
任何标量都可以跟数组进行计算。

6.4.2数组广播


练习:

第7章 通用函数
通用函数(ufunc)使得Numpy数组操作用于数组中的每一个元素。通用函数是C语言实现的,这样会取得更快的执行效率。


自定义通用函数

输入一个参数,输出一个参数。

第8章 更多函数
8.1随机数
8.1.1常用随机函数


8.2排序





8.3聚合函数
可以对整个数组元素或轴元素进行计算,获得单一值,这是聚合函数。如:sum、amin、amax、mean(平均值)、average(加权平均值)、var(方差)、std(标准偏差)等。
8.3.1求和:












第九章 线性代数
Numpy提供线性代数计算模块numpy.linalg,该模块包含了线性代数所需的所有功能。





第10章 高维数组