当前位置: 首页 > 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

相关文章:

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

一、创建矩阵 import numpy as np#创建矩阵anp.arange(15).reshape(3,5) bnp.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]…...

R语言的基本语句及基本规则

0x01 赋值语句 使用 “<-” 或 “” 进行赋值。例如&#xff1a; x <- 5 # 将数值 5 赋值给变量 x y 10 # 另一种赋值方式0x02 输出语句 使用 print() 函数输出内容。例如&#xff1a; print("Hello, R!") print(x)0x03 注释语句 任何在 #之后的内容在…...

网络受限情况下安装openpyxl模块提示缺少Jdcal,et_xmlfile

1.工作需要处理关于Excel文件内容的东西 2.用公司提供的openpyxl模块总是提示缺少jdcal文件,因为网络管控,又没办法直接使用命令下载&#xff0c;所以网上找了资源&#xff0c;下载好后上传到个人资源里了 资源路径 openpyxl jdcal et_xmlfile 以上模块来源于&#xff1a;Py…...

【算法】- 查找 - 散列表查询(哈希表)

文章目录 前言一、哈希表的思想二、哈希表总结 前言 散列技术&#xff1a;在记录的存储位置和它的关键字之间建立一个确定的对应关系f&#xff0c;使得每个关键字key对应一个存储位置f(key) 哈希表&#xff1a;采用散列技术将记录存储在一块连续的存储空间中&#xff0c;这块连…...

货币政策工具

本文为个人学习笔记&#xff0c;内容源于教材&#xff1b;整理记录的同时也作为一种分享。 1. 简介 货币政策工具作为央行实现货币政策目标的经济手段&#xff0c;以期达到最终目标&#xff0c;即物价稳定&#xff0c;充分就业&#xff0c;经济增长&#xff0c;国际收支平衡。…...

std::async概念和使用方法

std::async是 C 标准库中的一个函数模板&#xff0c;用于启动一个异步任务&#xff0c;并返回一个std::future对象&#xff0c;该对象可用于获取异步任务的结果。 1、概念 std::async允许你以异步的方式执行一个函数或者可调用对象&#xff0c;它会在后台启动一个新的线程或者…...

Chatgpt 原理解构

一、背景知识 1. 自然语言处理的发展历程 自然语言处理在不同时期呈现出不同的特点和发展态势。萌芽期&#xff0c;艾伦・图灵在 1936 年提出 “图灵机” 概念&#xff0c;为计算机诞生奠定基础&#xff0c;1950 年他提出著名的 “图灵测试”&#xff0c;预见了计算机处理自然…...

【每日刷题】Day135

【每日刷题】Day135 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. LCR 011. 连续数组 - 力扣&#xff08;LeetCode&#xff09; 2. 【模板】二维前缀和_牛客题霸_牛客…...

Linux运维01:VMware创建虚拟机

视频链接&#xff1a;05.新建VM虚拟机_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1nW411L7xm/?p14&spm_id_from333.880.my_history.page.click&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.点击“创建虚拟机” 2.选择“自定义&#xff08;高级&#xff0…...

服务器平均响应时间和数据包大小关系大吗?

服务器的平均响应时间与数据包大小有一定的关系&#xff0c;但这只是影响响应时间的众多因素之一。具体来说&#xff0c;数据包大小对服务器响应时间的影响可以从以下几个方面来理解&#xff1a; 1. 数据传输时间 影响: 较大的数据包需要更多的时间在网络上传输&#xff0c;因此…...

Vue入门-指令学习-v-show和v-if

v-show&#xff1a; 作用&#xff1a;控制元素的显示隐藏 语法&#xff1a;v-show"表达式" 表达式值true显示&#xff0c;false隐藏 v-if 作用&#xff1a;控制元素的显示隐藏&#xff08;条件渲染&#xff09; 语法&#xff1a; vif"表达式" 表达式tr…...

nacos多数据源插件介绍以及使用

概述 在微服务架构中&#xff0c;服务配置的集中管理和动态调整是至关重要的。Nacos 提供了配置管理和服务发现的功能&#xff0c;其中配置管理支持动态数据源的切换&#xff0c;增强了其在复杂环境中的适用性。默认情况下&#xff0c;Nacos 支持 MySQL 和Derby&#xff0c;但…...

国庆档不太热,影视股“凉”了?

今年国庆档票房止步21亿元&#xff0c;属实有点差强人意。 根据国家电影局统计&#xff0c;2024年国庆档&#xff08;2024年10月1日至7日&#xff09;全国电影票房为21.04亿元&#xff0c;观影人次为5209万&#xff0c;总票房成绩、观影总人次同比均有所下滑。 作为传统观影高…...

QtDesign预览的效果与程序运行的结果不一致的解决方法

存在的问题 使用Qt designer软件设计出来的界面&#xff0c;与转换成python程序运行出来的结果不一致&#xff0c;具体看下图 Qt designer预览结果 程序运行出来的结果 原因分析 我自己的电脑是2560*1600分辨率的屏幕&#xff0c;采用的是200%的缩放比例&#xff0c;出现这种…...

模运算和快速幂

文章目录 模运算快速幂 模运算 模运算是大数运算中的常用操作。如果一个数太大&#xff0c;无法直接输出&#xff0c;或者不需要直接输出&#xff0c;则可以对它取模&#xff0c;缩小数值再输出。取模可以防止溢出&#xff0c;这是常见的操作。 取模运算一般要求a和m的符号一…...

【机器学习】——神经网络与深度学习:从基础到应用

文章目录 神经网络基础什么是神经网络&#xff1f;神经网络的基本结构激活函数 深度学习概述什么是深度学习&#xff1f;常见的深度学习算法 深度学习的工作流程深度学习的实际应用结论 引言 近年来&#xff0c;神经网络和深度学习逐渐成为人工智能的核心驱动力。这类模型模仿人…...

Unity各个操作功能+基本游戏物体创建与编辑+Unity场景概念及文件导入导出

各个操作功能 部分功能 几种操作游戏物体的方式&#xff1a; Center:有游戏物体父子关系的时候&#xff0c;中心点位置 Global/Local:世界坐标系方向/自身坐标系方向 &#xff1a;调试/暂停/下一帧 快捷键 1.Alt鼠标左键&#xff1a;可以实现巡游角度查看场景 2.鼠标滚轮…...

QT入门教程攻略 QT入门游戏设计:贪吃蛇实现 QT全攻略心得总结

Qt游戏设计&#xff1a;贪吃蛇 游戏简介 贪吃蛇是一款经典的休闲益智类游戏&#xff0c;玩家通过控制蛇的移动来吃掉地图上的食物&#xff0c;使蛇的身体变长。随着游戏的进行&#xff0c;蛇的移动速度会逐渐加快&#xff0c;难度也随之增加。当蛇撞到墙壁或自己的身体时&…...

Linux No space left on device分析和解决

报错解释&#xff1a; "No space left on device" 错误表示你的Linux设备&#xff08;通常是磁盘分区&#xff09;上没有剩余空间了。这可能是因为磁盘已满&#xff0c;或者inode已满。磁盘空间是指磁盘上的实际空间&#xff0c;而inode是用来存储文件元数据的数据结…...

Qt实现Halcon窗口显示当前图片坐标

一、前言 Halcon加载图片的窗口&#xff0c;不仅能放大和缩小图片&#xff0c;还可以按住Ctrl键显示鼠标下的灰度值&#xff0c;这种方式很方便我们分析缺陷的灰度和对比度。 二、实现方式 ① 创建显示坐标和灰度的widget窗口 下图的是widget部件&#xff0c;使用了4个label控…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...