当前位置: 首页 > news >正文

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

一、创建矩阵

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矩阵相加:

print(a+b)

输出:

[[15 17 19 21 23]
 [25 27 29 31 33]
 [35 37 39 41 43]]

2、矩阵与变量的加法

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

例如:

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的广播功能。

     
    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中通常表示为一维数组,而在进行矩阵乘法时,你可能需要将其重塑为二维数组(即列向量或行向量)。

    # 创建一个矩阵  
    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函数或@运算符来进行矩阵与矩阵的乘法。

     
    # 创建两个矩阵  
    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乘积)。

     
    # 创建两个矩阵  
    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

http://www.lryc.cn/news/456669.html

相关文章:

  • R语言的基本语句及基本规则
  • 网络受限情况下安装openpyxl模块提示缺少Jdcal,et_xmlfile
  • 【算法】- 查找 - 散列表查询(哈希表)
  • 货币政策工具
  • std::async概念和使用方法
  • Chatgpt 原理解构
  • 【每日刷题】Day135
  • Linux运维01:VMware创建虚拟机
  • 服务器平均响应时间和数据包大小关系大吗?
  • Vue入门-指令学习-v-show和v-if
  • nacos多数据源插件介绍以及使用
  • 国庆档不太热,影视股“凉”了?
  • QtDesign预览的效果与程序运行的结果不一致的解决方法
  • 模运算和快速幂
  • 【机器学习】——神经网络与深度学习:从基础到应用
  • Unity各个操作功能+基本游戏物体创建与编辑+Unity场景概念及文件导入导出
  • QT入门教程攻略 QT入门游戏设计:贪吃蛇实现 QT全攻略心得总结
  • Linux No space left on device分析和解决
  • Qt实现Halcon窗口显示当前图片坐标
  • 构建宠物咖啡馆:SpringBoot框架的实现策略
  • Qt开发环境的搭建
  • docker-compose查看容器日志和实时查看日志
  • MVC、MVP和MVVM之间的区别
  • uni-app 打包成app时 限制web-view大小
  • 智能指针(2)
  • [含文档+PPT+源码等]精品基于Nodejs实现的家教服务小程序的设计与实现
  • electron打包报错-winCodeSign无法下载
  • 给Windows系统设置代理的操作方法
  • 高质量带货短视频素材来源推荐
  • torchvision.transforms.Resize()的用法