NumPy 基础(二) - 数组运算


一维数组运算

  • 生成一维示例数组
>>> a = np.array([1, 2, 3, 4, 5])
>>> b = np.arange(1, 6)
>>> a, b
(array([1, 2, 3, 4, 5]), array([1, 2, 3, 4, 5]))
  • 一维数组加法运算
>>> a + b 
array([ 2,  4,  6,  8, 10])
  • 一维数组减法运算
>>> a - b
array([0, 0, 0, 0, 0])
  • 一维数组乘法运算
>>> a * b
array([ 1,  4,  9, 16, 25])
  • 一维数组除法运算
>>> a / b
array([1., 1., 1., 1., 1.])

二维数组(矩阵)运算

  • 生成二维示例数组(可以看作矩阵)
>>> A = np.array([[1, 2],[3, 4]])
>>> B = np.array([[5, 6],[7, 8]])
>>> A, B
(array([[1, 2],
        [3, 4]]), array([[5, 6],
        [7, 8]]))
  • 矩阵加法运算
>>> A + B
array([[ 6,  8],
       [10, 12]])
  • 矩阵减法运算
>>> A - B
array([[-4, -4],
       [-4, -4]])
  • 矩阵元素间乘法运算
>>> A * B
array([[ 5, 12],
       [21, 32]])
  • 矩阵乘法运算
>>> np.dot(A, B)
array([[19, 22],
       [43, 50]])

注意:np.dot(A, B)与上题A * B的区别,如果不了解矩阵乘法运算,点击百度百科学习。

# 如果使用 np.mat 将二维数组准确定义为矩阵,就可以直接使用 * 完成矩阵乘法计算
>>> np.mat(A) * np.mat(B)
matrix([[19, 22],
        [43, 50]])
  • 数乘矩阵
>>> 2 * A
array([[2, 4],
       [6, 8]])
  • 矩阵的转置
>>> A.T
array([[1, 3],
       [2, 4]])
  • 矩阵求逆
>>> np.linalg.inv(A)
array([[-2. ,  1. ],
       [ 1.5, -0.5]])

关于逆矩阵,请查看百科


 评论