Python的numpy库矩阵计算(数据分析)

一、创建矩阵

python 复制代码
import numpy as np

#创建矩阵

a=np.arange(15).reshape(3,5)
b=np.arange(15,30).reshape(3,5)

使用arrange和reshape创建的二维数组就可以看成矩阵。

此时a和b存储的是:

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]]

[[15 16 17 18 19]

[20 21 22 23 24]

[25 26 27 28 29]]

二、矩阵的加法

1、矩阵跟矩阵的加法

如果是两个矩阵相加,则会对应位置的元素进行相加

例如上述代码中的a和b矩阵相加:

python 复制代码
print(a+b)

输出:

[[15 17 19 21 23]

[25 27 29 31 33]

[35 37 39 41 43]]

2、矩阵与变量的加法

如果是变量与矩阵相加,那么会矩阵每个元素都加一遍变量的值。

例如:

python 复制代码
import numpy as np

#创建矩阵

a=np.arange(15).reshape(3,5)
e=3
print(a+e)

输出:

[[ 3 4 5 6 7]

[ 8 9 10 11 12]

[13 14 15 16 17]]

三、矩阵的减法

矩阵的减法与加法相同。

四、矩阵的乘法

  1. 矩阵与标量的乘法

    当你想要将一个矩阵的每个元素都乘以一个标量(即一个单独的数)时,你可以简单地使用NumPy的广播功能。

    复制代码
    python 复制代码
    import numpy as np  
    
    # 创建一个矩阵  
    A = np.array([[1, 2], [3, 4]])  
    
    # 标量  
    scalar = 2  
    
    # 矩阵与标量的乘法  
    C = A * scalar  
    print(C)  
    # 输出:  
    # [[2 4]  
    #  [6 8]]
  2. 矩阵与向量的乘法(点积/内积)

    在NumPy中,通常使用dot函数或@运算符来进行矩阵与向量的乘法。但是,请注意,向量在NumPy中通常表示为一维数组,而在进行矩阵乘法时,你可能需要将其重塑为二维数组(即列向量或行向量)。

    python 复制代码
    # 创建一个矩阵  
    A = np.array([[1, 2], [3, 4]])  
    
    # 创建一个向量(这里我们将其视为列向量)  
    v = np.array([5, 6])  
    
    # 使用 dot 函数进行矩阵与向量的乘法  
    result_dot = np.dot(A, v)  
    print(result_dot)  
    # 输出:  
    # [17 39]  
    
    # 或者使用 @ 运算符(Python 3.5+)  
    result_at = A @ v  
    print(result_at)  
    # 输出与上面相同

    注意:如果v是一个一维数组,并且你希望它被视为列向量,那么上面的代码是正确的。但是,如果v已经是一个二维数组(例如,形状为(2, 1)的列向量),则不需要额外的重塑步骤。

  3. 矩阵与矩阵的乘法

    同样地,你可以使用dot函数或@运算符来进行矩阵与矩阵的乘法。

    复制代码
    python 复制代码
    # 创建两个矩阵  
    A = np.array([[1, 2], [3, 4]])  
    B = np.array([[5, 6], [7, 8]])  
    
    # 使用 dot 函数进行矩阵与矩阵的乘法  
    result_dot = np.dot(A, B)  
    print(result_dot)  
    # 输出:  
    # [[19 22]  
    #  [43 50]]  
    
    # 或者使用 @ 运算符  
    result_at = A @ B  
    print(result_at)  
    # 输出与上面相同
  4. 元素级乘法(Hadamard乘积)

    如果你想要进行矩阵的元素级乘法(即每个对应位置的元素相乘),你可以直接使用*运算符(在NumPy中,这称为逐元素乘法或Hadamard乘积)。

    复制代码
    python 复制代码
    # 创建两个矩阵  
    A = np.array([[1, 2], [3, 4]])  
    B = np.array([[5, 6], [7, 8]])  
    
    # 元素级乘法  
    elementwise_product = A * B  
    print(elementwise_product)  
    # 输出:  
    # [[ 5 12]  
    #  [21 32]]

请注意,在进行矩阵乘法时,矩阵的维度必须兼容。例如,一个m x n矩阵可以与一个n x p矩阵相乘,得到一个m x p矩阵。如果维度不匹配,NumPy将抛出一个ValueError

相关推荐
_.Switch12 分钟前
高效网络自动化:Python在网络基础中的应用
运维·开发语言·网络·python·数据分析·自动化
lanboAI19 分钟前
基于yolov8的驾驶员疲劳驾驶检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
pytorch·python·yolo
南巷逸清风23 分钟前
LeetCode 101.对称二叉树
c++·python·算法·leetcode
纪怽ぅ37 分钟前
浅谈——深度学习和马尔可夫决策过程
人工智能·python·深度学习·算法·机器学习
阿丁小哥39 分钟前
【Python各个击破】numpy
开发语言·python·numpy
仙草哥哥1 小时前
使用virtualenv/Anaconda/Miniconda创建python虚拟环境
python·conda·virtualenv
qq22951165021 小时前
python基于django线上视频学习系统设计与实现_j0189d4x
python·学习·django
易辰君2 小时前
【Python爬虫实战】深入理解Python异步编程:从协程基础到高效爬虫实现
爬虫·python
achaoyang2 小时前
【Python学习计算机知识储备】
开发语言·python·学习
卡卡_R-Python2 小时前
相关矩阵图——Python实现
开发语言·python