说明:

NumPy是一个高性能的科学计算和数据分析基础包,在数据分析领域有很多应用;

具有多维数组对象、线性代数、傅里叶变换和随机数等强大功能;

一、Numpy的安装

在平时的使用中,我们习惯将“import numpy”写成“import numpy as np”。

二、多维数组

说明:

  • 为了便于理解,可以将“多维数组”想象成一个用于存放数据的表格;
  • 表格存放的是同一类型的数据;
  • 可以通过索引值来提取表格中的数据(索引值用整数表示);

1、创建多维数组

常用Numpy中的array创建多维数组;

演示:

创建一维数组——

python修改多维数组里的值 python多维数组定义_数组

创建高维数组——

python修改多维数组里的值 python多维数组定义_数组_02

数组与列表——

python修改多维数组里的值 python多维数组定义_python修改多维数组里的值_03

(可以看出,所谓创建数组就是将列表作为参数传递给array,)

 

(1)用ones创建元素全为1的指定维度的数组

python修改多维数组里的值 python多维数组定义_python_04

更新数组中的元素

python修改多维数组里的值 python多维数组定义_numpy_05

若要改“第2行,第3列”,则改“[1,2]”

(2)用zeros创建元素全为0的指定维度的数组

python修改多维数组里的值 python多维数组定义_python_06

(3)用empty创建元素全为无意义数的指定维度的数组

python修改多维数组里的值 python多维数组定义_python_07

根据给定的维度和数值类型返回一个新的数组,其元素不进行初始化

如果先创建一个元素全为0的数组,然后再用empty创建数组,那么得到的新数组也全为0,如下所示:

  • 运行zeros

python修改多维数组里的值 python多维数组定义_python_08

  • 运行empty

python修改多维数组里的值 python多维数组定义_数组_09

 

(4)用random.rand创建元素全为随机数的指定维度的数组

python修改多维数组里的值 python多维数组定义_数据分析_10

关于创建随机数的数组可参考——


2、多维数组的常用属性

(1)ndim返回数组的维数

(2)shape返回数组的维度

(3)size返回数组的元素总数

(4)dtype返回数组的元素的数据类型

(5)itemsize返回数组中元素的字节大小

3、数组的打印

说明:

就是用print打印输出

 

三、多维数组的基本操作

说明:

这些操作包括算数运算索引乘法除法算数运算;

1、数组的算术运算

加、减、乘、除

python修改多维数组里的值 python多维数组定义_python_11

可以看出来,数组运算不同于矩阵运算,数组运算有除法,而矩阵运算没有,数组运算的乘法是对应点相乘;

如何由数组实现矩阵运算?

下面有两种方法:(建立数组a & b

  • 方法一:a.dot(b)
  • 方法二:np.dot(a,b)

python修改多维数组里的值 python多维数组定义_数据分析_12

2、数组的自身运算

除了数组与数组、数组与标量之间的算术运算,我们还可以通过自定义一些方法来对数组本身进行操作;

  • min:找出所有元素中,值最小的元素(可以通过设置axis的值来按行或者列查找元素中的最小值)
  • max:找出所有元素中,值最大的元素(同上可按或者查找元素中的最大值)
  • sum:对所有元素进行求和运算,并返回运算结果(可通过设置axis的值来按行或者列对元素进行求和运算)

演示:

python修改多维数组里的值 python多维数组定义_python修改多维数组里的值_13

  • exp:对所有元素进行指数运算。
  • sqrt:对所有元素进行平方根运算。
  • square:对所有元素进行平方运算。

演示:

python修改多维数组里的值 python多维数组定义_数据分析_14

在多维数组中通过对axis参数进行不同的设置可以得到不同运算结果:

  • 当axis为0时,计算方向是针对数组的列的;
  • 当axis为1时,计算方向是针对数组的行的;

3、随机数组

NumPy生成不同属性的随机数方法如下:

  • seed:随机因子,在随机数生成器的随机因子被确定后,无论我们运行多少次随机程序,最后生成的数字都是一样的,随机因子更像把随机的过程变成一种伪随机的机制,不过这有利于结果的复现。
  • rand:生成一个在[0,1)范围内满足均匀分布的随机样本数。
  • randn:生成一个满足平均值为0且方差为1的正太分布随机样本数。
  • randint:在给定的范围内生成类型为整数的随机样本数。
  • binomial:生成一个维度指定且满足二项分布的随机样本数。
  • beta:生成一个指定维度且满足beta分布的随机样本数。
  • normal:生成一个指定维度且满足高斯正太分布的随机样本数。

4、索引、切片和迭代

(见书)

后续补充~