说明:
NumPy是一个高性能的科学计算和数据分析基础包,在数据分析领域有很多应用;
具有多维数组对象、线性代数、傅里叶变换和随机数等强大功能;
一、Numpy的安装
在平时的使用中,我们习惯将“import numpy
”写成“import numpy as np
”。
二、多维数组
说明:
- 为了便于理解,可以将“多维数组”想象成一个用于存放数据的表格;
- 表格存放的是同一类型的数据;
- 可以通过索引值来提取表格中的数据(索引值用整数表示);
1、创建多维数组
常用Numpy
中的array
创建多维数组;
演示:
创建一维数组——
创建高维数组——
数组与列表——
(可以看出,所谓创建数组就是将列表作为参数传递给array
,)
(1)用ones
创建元素全为1的指定维度的数组
更新数组中的元素
若要改“第2行,第3列”,则改“[1,2]”
(2)用zeros
创建元素全为0的指定维度的数组
(3)用empty
创建元素全为无意义数的指定维度的数组
根据给定的维度和数值类型返回一个新的数组,其元素不进行初始化
如果先创建一个元素全为0的数组,然后再用empty
创建数组,那么得到的新数组也全为0,如下所示:
- 运行
zeros
- 运行
empty
(4)用random.rand
创建元素全为随机数的指定维度的数组
关于创建随机数的数组可参考——
2、多维数组的常用属性
(1)ndim
返回数组的维数
(2)shape
返回数组的维度
(3)size
返回数组的元素总数
(4)dtype
返回数组的元素的数据类型
(5)itemsize
返回数组中元素的字节大小
3、数组的打印
说明:
就是用print
打印输出
三、多维数组的基本操作
说明:
这些操作包括算数运算、索引、乘法和除法算数运算;
1、数组的算术运算
加、减、乘、除
可以看出来,数组运算不同于矩阵运算,数组运算有除法,而矩阵运算没有,数组运算的乘法是对应点相乘;
如何由数组实现矩阵运算?
下面有两种方法:(建立数组a
& b
)
- 方法一:
a.dot(b)
- 方法二:
np.dot(a,b)
2、数组的自身运算
除了数组与数组、数组与标量之间的算术运算,我们还可以通过自定义一些方法来对数组本身进行操作;
min
:找出所有元素中,值最小的元素(可以通过设置axis的值来按行或者列查找元素中的最小值)max
:找出所有元素中,值最大的元素(同上可按行或者列查找元素中的最大值)sum
:对所有元素进行求和运算,并返回运算结果(可通过设置axis的值来按行或者列对元素进行求和运算)
演示:
exp
:对所有元素进行指数运算。sqrt
:对所有元素进行平方根运算。square
:对所有元素进行平方运算。
演示:
在多维数组中通过对axis
参数进行不同的设置可以得到不同运算结果:
- 当axis为0时,计算方向是针对数组的列的;
- 当axis为1时,计算方向是针对数组的行的;
3、随机数组
NumPy生成不同属性的随机数方法如下:
seed
:随机因子,在随机数生成器的随机因子被确定后,无论我们运行多少次随机程序,最后生成的数字都是一样的,随机因子更像把随机的过程变成一种伪随机的机制,不过这有利于结果的复现。rand
:生成一个在[0,1)范围内满足均匀分布的随机样本数。randn
:生成一个满足平均值为0且方差为1的正太分布随机样本数。randint
:在给定的范围内生成类型为整数的随机样本数。binomial
:生成一个维度指定且满足二项分布的随机样本数。beta
:生成一个指定维度且满足beta分布的随机样本数。normal
:生成一个指定维度且满足高斯正太分布的随机样本数。
4、索引、切片和迭代
(见书)
后续补充~