【Numpy第一讲】如何生成矩阵,如何对矩阵进行加减乘除

这篇具有很好参考价值的文章主要介绍了【Numpy第一讲】如何生成矩阵,如何对矩阵进行加减乘除。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

该博客为本人自学自编的笔记,主要介绍了Numpy部分用处,这是第一篇Numpy文章

Numpy库的简介

Numpy是一个强大的Python库,用于进行科学计算,它可以处理矩阵和很多数据。

  1. 多维数组对象:在Numpy中,最核心的部分就是它的多维数组对象,或者叫做ndarray。这个数组允许你存储同类型的数据集合,可以是一维(比如一行数字)、二维(比如一个表格或矩阵)、甚至是更高维度的数据结构。使用这种结构,我们可以非常高效地进行数学和逻辑运算。
  2. 处理工具:Numpy不仅提供了多维数组对象,还提供了大量的函数和操作,可以很方便地进行数学计算、数组操作(比如切片、索引、迭代)、线性代数运算、随机数生成等等。使得Numpy成为了科学计算、数据分析、机器学习等领域不可或缺的工具。

如果你打算在Python中进行任何形式的科学计算或数据分析,学习Numpy几乎是必须的一步。

创建矩阵

通过已有的列表,建立一个多维数组

import numpy as np
#根据两组列表,创建一个二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])

在这个代码中,根据两组列表,通过 np.array() 函数将他们创建成了一个二维数组。
[ 1 2 3 4 5 6 ] \begin{bmatrix} 1 & 2 &3\\ 4 & 5 &6\\ \end{bmatrix} [142536]
此外,只要是能够有序列表示的类型,都可以通过这个函数创建多维数组,元组同样可以用于创建多维数组。

直接创建数组

创建全0矩阵
import numpy as np
#创建一个3*3全为0的矩阵
zeros_matrix = np.zeros((3, 3))

在这个代码中,通过 np.zeros() 函数,创建了一个长宽均为3的全0矩阵。
[ 0 0 0 0 0 0 0 0 0 ] \begin{bmatrix} 0 & 0 &0\\ 0& 0 &0\\ 0&0&0\\ \end{bmatrix} 000000000

创建全1矩阵
import numpy as np
#创建一个3*3全为1的矩阵
ones_matrix = np.ones((3, 3))

在这个代码中,通过 np.zeros() 函数,创建了一个长宽均为3的全0矩阵。
[ 1 1 1 1 1 1 1 1 1 ] \begin{bmatrix} 1 & 1 &1\\ 1& 1 &1\\ 1&1&1\\ \end{bmatrix} 111111111

创建对角线为1的矩阵
import numpy as np
#创建一个3*3的单位矩阵
identity_matrix = np.eye(3)

在这个代码中,通过 np.eye() 函数,创建了3*3对角线全为1的单位矩阵
[ 1 0 0 0 1 0 0 0 1 ] \begin{bmatrix} 1 & 0 &0\\ 0& 1 &0\\ 0&0&1\\ \end{bmatrix} 100010001

矩阵的加减乘除

矩阵的加减

进行矩阵的加减前提是两个矩阵拥有相同的维度,加减就是将矩阵中对应的数字进行加减。我们直接用 + - 号即可将他们加减。

import numpy as np

#我们用字母代替,以便更好的展示
A = np.array([[a, b], [c, d]])
B = np.array([[e, f], [g, h]])
C = A + B
D = A - B

此时C的结果应该是
C = [ a + e b + f c + g d + h ] C=\begin{bmatrix} a+e & b+f\\ c+g& d+h \\ \end{bmatrix} C=[a+ec+gb+fd+h]
D的结果
D = [ a − e b − f c − g d − h ] D=\begin{bmatrix} a-e & b-f\\ c-g& d-h \\ \end{bmatrix} D=[aecgbfdh]
如果想让矩阵都加减某一个数,直接使用**+ -** 号那个数即可

A = np.array([[a, b], [c, d]])
C = A+1

C = [ a + 1 b + 1 c + 1 d + 1 ] C=\begin{bmatrix} a+1 & b+1\\ c+1& d+1 \\ \end{bmatrix} C=[a+1c+1b+1d+1]

矩阵的乘除

乘法

矩阵的乘除并不是加减一样简单,他的计算规则是这样的。
A = [ a b c d ] B = [ e f g h ] A=\begin{bmatrix} a & b\\ c& d \\ \end {bmatrix} B=\begin{bmatrix} e & f\\ g& h \\ \end {bmatrix} A=[acbd]B=[egfh]
那么A×B就是这样的
A × B = ( a e + b g a f + b h c e + d g c f + d h ) \mathbf{A} \times \mathbf{B} = \begin{pmatrix} ae + bg & af + bh \\ ce + dg & cf + dh \end{pmatrix} A×B=(ae+bgce+dgaf+bhcf+dh)
使用的函数是

import numpy as np

A = np.array([[a, b], [c, d]])
B = np.array([[e, f], [g, h]])
A × B = np.dot(A,B)
除法

对于矩阵,并不存在“正常”的除法,除以一个矩阵就是乘上它的逆矩阵
A × A − 1 = I 单位矩阵 A ×A^{-1}= I_{单位矩阵} A×A1=I单位矩阵
在Python中,逆矩阵的函数为

A_inv = np.linalg.inv(A)

此时除以A就等价于乘上A_inv

B ➗ A = np.dot(B, np.linalg.inv(A))
乘除一个数

和加减一样,只需要使用 * / 符号即可

A = np.array([[a, b], [c, d]])
D = A * 2

D = [ a ∗ 2 b ∗ 2 c ∗ 2 d ∗ 2 ] D=\begin{bmatrix} a*2 & b*2\\ c*2& d*2 \\ \end{bmatrix} D=[a2c2b2d2]

此外,不止是加减乘除,平方、判断大小等等都可以直接用在矩阵上。文章来源地址https://www.toymoban.com/news/detail-846332.html

到了这里,关于【Numpy第一讲】如何生成矩阵,如何对矩阵进行加减乘除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++Primer——第一讲

    重制C++Primer 目录 一、第一个程序 二、代码  二、题目 我们会从一个C++程序开始,这里默认您已经安装了Dev-C++或其他的IDE软件。 下面这串代码是可以输出“Hello world”的代码。  如果要运行它,就应该先将它编译成程序。先打开IDE,新建一个文件(Ctrl+N): 接着,您可以复

    2024年02月08日
    浏览(39)
  • 第一讲:入门知识笔记

    python 变量无类型,但值里面有类型。 动态类型语言(pythonjavascript) Subtraction reverse 3-digit number 判断两个浮点数是否相等不能直接用== 运算优先级 operation precedence not and or 计算闰年 交换变量 name variable google.github.io/styleguide/pyguide.html python中的权限控制access control 默认成员变量

    2024年01月25日
    浏览(42)
  • 自动曝光算法(第一讲)

    失业在家无事,想到以后换方向不做自动曝光了,但是自动曝光的工作经验也不能浪费了,准备写一个自动曝光的教学,留给想做自动曝光的小伙伴参考。笔者当时开发自动曝光没有按摄影的av+tv=ev=bv+sv公式弄,而是按正确的增益=目标亮度/当前亮度*当前增益的公式去开发。

    2024年02月06日
    浏览(49)
  • JavaSE面试深度剖析 第一讲

    目录 JavaSE面试深度剖析 第一讲 Java面向对象 1 面向对象都有哪些特性以及你对这些特性的理解 2 访问权限修饰符 public、private、protected, 以及不写(默认)时的区别 3 如何理解 clone 对象       本文章向大家介绍JavaSE面试深度剖析 第一讲,主要内容包括其使用实例、应用技巧

    2024年02月06日
    浏览(41)
  • 线性代数的学习和整理5: 矩阵的加减乘除及其几何意义

    目录 1 矩阵加法 1.1 矩阵加法的定义 1.2 加法的属性 1.2.1 只有同类型,相同n*m的矩阵才可以相加 1.2.1 矩阵加法的可交换律: 1.2.2 矩阵加法的可结合律: 1.3矩阵加法的几何意义 2  矩阵的减法 2.1 矩阵减法定义和原理基本同 矩阵的加法 2.2 矩阵减法的几何意义 3 矩阵标量乘法

    2024年02月11日
    浏览(45)
  • 第一讲:BeanFactory和ApplicationContext接口

    BeanFactory是ApplicationContext的父接口,是真正的Spring核心容器,主要的ApplicationContext实现都【组合】了他的功能。 首先先看一下BeanFactory的接口定义: 表面上只有getBean功能,实际上控制反转、基本的依赖注入、直至Bean的生命周期的各种功能,都由他的实现类提供, 例如:Defau

    2024年02月12日
    浏览(34)
  • 蓝桥杯---第一讲 递归与递推

    本篇博客主要打卡记录博主学习蓝桥杯C++AB组辅导课的习题第一章节的题目。 这一道题主要考查 dfs 算法,然后这一道题就是以位置来进行 搜索 当搜索到最后一个位置的时候就可以 收获结果 然后考虑枚举到的位置 可以选择 选 或者 不选 这一道题目 就是枚举每一个位置,然

    2024年02月08日
    浏览(38)
  • Java进行数字计算 BigDecimal计算(加减乘除)

    Double只能处理16位有效数精度,在某些情况下精度对其需求是不够的,所以就有了BigDecimal。因为BigDecimal的精度范围的范围大,所以在问我们的开发业务中对精度要求高的属性,就需要BigDecimal来进行存储计算,防止精度丢失。这里我主要介绍一下BigDecimal的加,减,乘,除。四

    2023年04月08日
    浏览(40)
  • 「网络编程」第一讲:初识网络_网络基础1

    「前言」文章是关于网络编程方面的,今天内容大致是网络基础,讲解下面开始! 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、计算机网络背景 1.1 网络发展 1.2 认识 \\\"协议\\\" 二、网络协议初识 2.1 协议分层 2.2 OSI七层模型 2.3 TCP/IP五层(或四层

    2024年02月08日
    浏览(57)
  • 第一讲使用IDEA创建Java工程——HelloWorld

            为了能够让初学者更快上手Java,不会像其他书籍或者视频一样,介绍一大堆历史背景,默认大家已经知道Java这么编程语言了。本专栏只会讲解干货,直接从HelloWord入手,慢慢由浅入深,讲个各个知识点,这些知识点也是目前工作中项目使用的,而不是讲一些老的

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包