Numpy的基础——向量计算矩阵计算

宋正兵 on 2021-02-25

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

1、Numpy线性代数

函数 描述
dot 两个数组的点积,即元素对应相乘
vdot 两个向量的点积
inner 两个数组的内积
matmul 两个数组的矩阵积
determinant 数组的行列式
solve 求解线性矩阵方程
inv 计算矩阵的乘法逆矩阵

两个向量的点积 numpy.vdot()

numpy.vdot() 函数是两个向量的点积。

1
2
3
4
5
6
7
import numpy as np

a = np.array([1,2],[3,4])
b = np.array([11,12],[13,14])

# vdot 将数组展开计算内积
print(np.vdot(a,b))

输出结果为:

1
130

计算式为:

1
1*11 + 2*12 + 3*13 + 4*14 = 130

2、Numpy数组操作

连接数组

函数 描述
concatenate 连接沿现有轴的数组序列
stack 沿着新的轴加入一系列数组
hsatck 水平堆叠序列中的数组(列方向)
vstack 竖直堆叠序列中的数组(行方向)
1
2
3
4
5
6
7
8
9
10
import numpy as np
a = np.array([1,2],[3,4])
print ('第一个数组:')
print (a)
print ('\n')
b = np.array([[5,6],[7,8]])

print ('第二个数组:')
print (b)
print ('\n')

输出结果:

1
2
3
4
5
6
7
第一个数组:
[[1 2]
[3 4]]

第二个数组:
[[5 6]
[7 8]]

numpy.hstack

numpy.hstack 是 numpy.stack 函数的变体,它通过水平堆叠来生成数组。

1
2
3
print ('水平堆叠:')
c = np.hstack((a,b))
print (c)

输出结果:

1
2
3
水平堆叠:
[[1 2 5 6]
[3 4 7 8]]

numpy.vstack

numpy.vstack 是 numpy.stack 函数的变体,它通过垂直堆叠来生成数组。

1
2
3
print ('竖直堆叠:')
c = np.vstack((a,b))
print (c)

输出结果:

1
2
3
4
5
竖直堆叠:
[[1 2]
[3 4]
[5 6]
[7 8]]