Numpy创建NumPy矩阵的简单实现

作者:mighty13 时间:2022-08-22 15:08:25 

创建NumPy矩阵

NumPy对于多维数组的运算,默认情况下并不进行矩阵运算。如果需要对数组进行矩阵运算,则可以调用相应的函数。

在NumPy中,矩阵是ndarray的子类。

在NumPy中,数组和矩阵有着重要的区别。NumPy提供了两个基本的对象:一个N维数组对象和一个通用函数对象。其他对象都是在它们之上构建的。

矩阵是继承自NumPy数组对象的二维数组对象。与数学概念中的矩阵一样,NumPy中的矩阵也是二维的。

1. 创建矩阵

可以使用mat、matrix以及bmat函数来创建矩阵。使用mat函数创建矩阵时,若输入matrix或ndarray对象,则不会为它们创建副本。因此,调用mat函数和调用matrix(data, copy=False)等价。

案例:创建矩阵

# 导入NumPy库
import numpy as np
# 使用分号隔开数据
matr1 = np.mat("1 2 3;4 5 6;7 8 9")
print('创建的矩阵为:',matr1)
# 使用列表创建矩阵
matr2 = np.matrix([[1,2,3],[4,5,6],[7,8,9]])
print('创建的矩阵为:',matr2)

创建的矩阵为: [[1 2 3]
 [4 5 6]
 [7 8 9]]
创建的矩阵为: [[1 2 3]
 [4 5 6]
 [7 8 9]]

2. 创建分块矩阵

很多时候会根据小的矩阵创建大的矩阵,即将小矩阵组合成大矩阵。在NumPy中,可以使用bmat分块矩阵(block matrix)函数实现。

案例:创建分块矩阵

arr1 = np.eye(3)
print('创建的数组1为:',arr1)

arr2 = 3*arr1
print('创建的数组2为:',arr2)

print('创建的矩阵为:',np.bmat("arr1 arr2; arr1 arr2"))

创建的数组1为: [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
创建的数组2为: [[3. 0. 0.]
 [0. 3. 0.]
 [0. 0. 3.]]
创建的矩阵为: [[1. 0. 0. 3. 0. 0.]
 [0. 1. 0. 0. 3. 0.]
 [0. 0. 1. 0. 0. 3.]
 [1. 0. 0. 3. 0. 0.]
 [0. 1. 0. 0. 3. 0.]
 [0. 0. 1. 0. 0. 3.]]

3. 矩阵计算

在NumPy中,矩阵计算是针对整个矩阵中的每个元素进行的。与使用for循环相比,其在运算速度上更快。

案例:矩阵计算

matr1 = np.mat("1 2 3;4 5 6;7 8 9")  #创建矩阵
print('创建的矩阵为:',matr1)

matr2 = matr1*3  #矩阵与数相乘
print('创建的矩阵为:',matr2)
print('矩阵相加结果为:',matr1+matr2)  #矩阵相加
print('矩阵相减结果为:',matr1-matr2)  #矩阵相减
print('矩阵相乘结果为:',matr1*matr2)  #矩阵相乘
print('矩阵对应元素相乘结果为:',np.multiply(matr1,matr2))

创建的矩阵为: [[1 2 3]
 [4 5 6]
 [7 8 9]]
创建的矩阵为: [[ 3  6  9]
 [12 15 18]
 [21 24 27]]
矩阵相加结果为: [[ 4  8 12]
 [16 20 24]
 [28 32 36]]
矩阵相减结果为: [[ -2  -4  -6]
 [ -8 -10 -12]
 [-14 -16 -18]]
矩阵相乘结果为: [[ 90 108 126]
 [198 243 288]
 [306 378 450]]
矩阵对应元素相乘结果为: [[  3  12  27]
 [ 48  75 108]
 [147 192 243]]

4. 矩阵属性

除了能够实现各类运算外,矩阵还有其特有的属性。

属性说明
T返回自身的转置
H返回自身的共轭转置
I返回自身的逆矩阵
A返回自身数据的2维数组的一个视图

案例:矩阵的属性

print('矩阵转置结果为:',matr1.T)  #转置
print('矩阵共轭转置结果为:',matr1.H)  #共轭转置(实数的共轭就是其本身)
print('矩阵的二维数组结果为:',matr1.A)  #返回二维数组的视图
print('矩阵的逆矩阵结果为:',matr1.I)  #逆矩阵

矩阵转置结果为: [[ 2  1 -1]
 [ 2 -1  2]
 [ 3  0  1]]
矩阵共轭转置结果为: [[ 2  1 -1]
 [ 2 -1  2]
 [ 3  0  1]]
矩阵的二维数组结果为: [[ 2  2  3]
 [ 1 -1  0]
 [-1  2  1]]
矩阵的逆矩阵结果为: [[ 1. -4. -3.]
 [ 1. -5. -3.]
 [-1.  6.  4.]]

来源:https://blog.csdn.net/mighty13/article/details/119652459

标签:Numpy,矩阵
0
投稿

猜你喜欢

  • python 爬取疫情数据的源码

    2022-05-22 13:21:54
  • python Pandas如何对数据集随机抽样

    2023-10-02 08:28:13
  • 《色彩解答》系列之一 色彩层次

    2008-02-17 14:26:00
  • SQL Server 2000的视图中必须小心使用*符号

    2008-12-05 15:38:00
  • python基础pandas的drop()用法示例详解

    2023-06-11 15:11:39
  • Django框架基础认证模块auth应用示例

    2023-11-10 07:48:51
  • Python中的多行注释文档编写风格汇总

    2023-05-05 02:41:18
  • WEB页面工具语言XML产生背景

    2008-05-29 10:52:00
  • 使用Python完成SAP客户端的打开和系统登陆功能

    2021-02-28 17:12:29
  • Python实现合并excel表格的方法分析

    2022-04-24 21:30:22
  • 在python中读取和写入CSV文件详情

    2021-01-21 22:34:51
  • 如何使用Python实现名片管理系统

    2022-11-24 03:13:09
  • 超越质检员——看图购beta版的思考

    2009-04-15 12:11:00
  • 能否推荐一个论坛用的数据库结构?

    2009-11-01 18:09:00
  • JavaScript版无组件上传类

    2007-10-06 23:16:00
  • PaddleNLP ppdiffusers 自动生成兔了个兔海报

    2023-07-20 01:56:39
  • Python中return用法案例详解

    2022-09-09 10:35:40
  • css基础教程属性篇之盒子模型

    2008-07-29 12:05:00
  • python多进程 主进程和子进程间共享和不共享全局变量实例

    2022-11-05 11:42:56
  • Python实现APP自动化发微信群消息的示例代码

    2023-07-27 05:24:26
  • asp之家 网络编程 m.aspxhome.com