<代码>

数据库 NumPy

NumPy — Python 编程语言的开源库,它实现了大量处理向量、矩阵和数组的操作。 

用解释型语言(例如Python)实现的数学算法往往比用编译型语言(例如Fortran、C、Java)实现的数学算法慢很多。 NumPy 库提供了针对多维数组优化的计算算法的实现(以函数和运算符的形式)。 
因此,任何可以表示为数组(矩阵)操作序列并使用 NumPy 实现的算法都足够快。

NumPy (Numeric Python) 是处理数据的核心数学库。该库是处理机器学习或数据分析任务的其他库的基础(例如,Pandas (处理表格数据)、SciPy (优化方法和科学计算)、< tt>Matplotlib (绘图)。

 

使用 NumPy

为了开始使用 numpy 库,您需要像任何其他库一样在程序开始时导入它, 导入 numpy 左右(使用频率更高) 将 numpy 导入为 np



NumPy 向量

NumPy 中的向量(或数组)是一组有序的同类数据。

可以通过其索引访问向量的元素,就像在列表中一样。 vector 的每个元素都有自己特定的位置,这是在创建时设置的。
所有向量元素都具有相同的数据类型(intstrbool 等)。

创建一个向量
要创建向量,您需要使用 numpy.array 构造函数(可迭代对象)。
括号表示任何可迭代对象:tuple、list、range()等。
 
例子 
将 numpy 导入为 np 将 numpy 导入为 np print(np.array((1,2,3,4,5))) # 来自元组的向量 print(np.array([1,2,3,4,5])) # 来自列表的向量 print(np.array(range(5))) # 来自生成器的向量

使用矢量元素

使用向量元素与使用列表元素相同,您可以通过索引访问元素,也可以创建切片。

例子
<表> <正文>
1个
2个
3个
4个
5个
6个
7
将 numpy 导入为 np V = np.array((1,2,3,4)) 打印(V[0])#1 打印(V[-1]) # 4 打印(V[1:-2]) # [2] print(V[::2]) # [1 3]
选择向量元素
要选择向量元素,可以使用包含逻辑值(表达式)的向量。在具有布尔值的向量中将为 True 的向量元素将被选中。
 

例子
将 numpy 导入为 np V = np.array([1,-2,3,-4,5]) # 选择向量的前两个元素 print(V[np.array((True, True, False, False, False))]) # [ 1 -2] # 选择正向量元素 print(V[V > 0]) # [1 3 5] # 选择偶数向量元素 print(V[V % 2 == 0]) # [-2 -4]

创建数组和矩阵的方法

创建数组和矩阵的其他有用方法。

例子
<表> <正文>
 1个
 2个
 3个
 4个
 5个
 6个
 7
 8个
 9
10
十一
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
三十
31
32
33
34
35
36
37
将 numpy 导入为 np # 一维零数组 打印(np.zero(5))#[0。 0.0.0.0.] # 零的二维数组 print(np.zeros((2, 3))) # [[0. 0.0.] #[0。 0.0.]] # 单位的 3D 数组 print(np.ones((2,3,4))) # [[[1. 1. 1. 1.] # [1。 1. 1. 1.] # [1。 1.1.1.]] # #[[1。 1. 1. 1.] # [1。 1. 1. 1.] # [1。 1.1.1.]]] # 带有类型指示的零数组 print(np.zeros(5, dtype=np.int)) # [0 0 0 0 0] # 基于列表列表的数组 print(np.array([[1,2.0],[0,0],(1,3.)])) # [[1. 2.] #[0。 0.] # [1。 3.]] # 一个数组,由0开始的等差数列元素组成 打印(np.arange(10))#[0 1 2 3 4 5 6 7 8 9] # 带有类型指示的算术级数 print(np.arange(2, 10, dtype=np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.] # 非整数差的等差数列 打印(np.arange(2, 3, 0.1)) # [2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9] # 给定项数的等差数列 print(np.linspace(1., 4., 6)) # [1. 1.6 2.2 2.8 3.4 4.]
零数组元素
 
函数 nonzero(V) 
结果是一个数组元组。每个这样的数组对应于原始数组的一个单独的轴,并包含该数组中具有非零元素的索引。
V - a NumPy 数组或类数组对象。
返回一个 Python tuple (tuple) - 元组,其中包含原始数组 V 的非零元素的索引数组。
 
函数 count_nonzero(V) 
该函数基于 Python 对象内置的  __bool__() 方法来检查它们是否为真。因此  count_nonzero() 函数实际上不仅可以处理数字,还可以处理任何可以为真或为假的对象。
V - a NumPy 数组或类数组对象。
该函数返回沿指定轴的非零数组元素的数量。

对角线阵列

 diag(V, k=0) 函数允许您从数组中提取对角线,以及从一维数组构建对角线数组。
V - 类似数组的对象、二维或一维数组、矩阵、列表或元组,或者具有返回列表或元组方法的任何函数或对象。
k - 对角线索引(可选)。
默认值为 k = 0 对应于主对角线。正 k 值将对角线向上移动,负值将其向下移动。

该函数返回 array NumPy (ndarray) - 指定数组的对角线或来自指定一维数组的对角线数组。

2D NumPy 数组

通过指定元素的坐标访问二维数组的元素,首先是行号,然后是列号。坐标以逗号分隔。 
使用 reshape(). 函数可以将任何数组转换为二维数组

例子
<表> <正文>
1个
2个
3个
4个
5个
6个
7
8
# reshape() 函数改变数组的形状而不改变它的数据。 x = np.arange(12).reshape(3, 4) 打印(x) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # 要访问一个元素,请指定其坐标,以逗号分隔 print(x[1, 2]) # 6