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

相关推荐
databook20 小时前
Manim如何在数学公式中完美显示中文?
python·数学·动效
2301_8176722620 小时前
mysql如何通过调整Undo Log优化并发性能_优化innodb_max_undo_log_size
jvm·数据库·python
2301_7775993720 小时前
mysql如何配置插件以提升查询性能_安装启用memcached插件
jvm·数据库·python
配奇20 小时前
PyTorch 核心使用
人工智能·pytorch·python
2301_7735536221 小时前
Tailwind CSS如何实现固定定位布局_使用fixed与z-index控制CSS层级
jvm·数据库·python
2301_8148098621 小时前
Bootstrap 5中浮动标签(Floating Labels)怎么用?
jvm·数据库·python
解救女汉子21 小时前
如何处理SQL存储过程大数据导入_利用数据泵或外部表
jvm·数据库·python
qq_3729069321 小时前
HTML函数在系统字体渲染模糊是硬件问题吗_显示输出链路排查【方法】
jvm·数据库·python
Polar__Star21 小时前
如何在 PHP 包含文件中动态排除特定页面的导航项
jvm·数据库·python
码农的神经元21 小时前
2026 MathorCup C 题实战复盘:从高血脂风险预警到 6 个月干预优化的建模思路与 Python 落地
c语言·开发语言·python