Python NumPy矩阵对象详解及方法

 更新时间:2022年09月06日 11:45:47   作者:飞Link  
这篇文章主要介绍了Python NumPy矩阵对象详解及方法,文章围绕主题展开详细的内容戒杀,具有一定的参考价值,需要的朋友可以参考一下

1. 介绍

在数学上,矩阵(Matrix)是一个按照矩形阵列排列的负数或实数集合,但在NumPy中,矩阵np.matrix是数组np.ndarray的派生类。这意味着矩阵本质上是   一个数组,拥有数组的所有属性和方法;同时,矩阵又有一些不同于数组的特性和方法首先,矩阵是二维的,不能像数组一样幻化成任意维度,即使展开或切片,返回也是二维的;其次,矩阵和矩阵、矩阵和数组都可以做加减乘除运算,运算结果都是返回矩阵;最后,矩阵的乘法不同于数组乘法

2. 创建矩阵

np.mat()函数用于创建矩阵,它可以接受列表、数组甚至是字符串等形式的参数,还可以使用dtype参数指定数据类型,

其代码如下:

import numpy as np
import numpy.matlib as mat

print(np.mat([[1,2,3],[4,5,6]], dtype=np.int)) # 使用列表创建矩阵
print(np.mat(np.arange(6).reshape((2,3)))) # 使用数组创建矩阵
print(np.mat('1 4 7; 2 5 8; 3 6 9')) # 使用Matlab风格的字符串创建矩阵

此外,和生成特殊值数组类似,numpy.matlib子模块也提供了多个函数用于生成特殊值矩阵和随机数矩阵

print(mat.zeros((2,3))) # 全0矩阵
print(mat.ones((2,3))) # 全1矩阵
print(mat.eye(3)) # 单位矩阵
print(mat.empty((2,3))) # 空矩阵
print(mat.rand((2,3))) # [0,1)区间随机数矩阵
print(mat.randn((2,3))) # 均值0方差1的高斯(正态)分布矩阵

3. 矩阵特有属性

矩阵有几个特有的属性,如转置矩阵、逆矩阵、共轭矩阵、共轭转置矩阵等。

import numpy as np

m = np.mat(np.arange(6).reshape((2,3)))
print(m)
print(m.T) # 返回自身的转置矩阵
print(m.H) # 返回自身的共轭转置矩阵
print(m.I) # 返回自身的逆矩阵
print(m.A) # 返回自身数据的视图(ndarray类)

4. 矩阵乘法

矩阵运算和数组运算大致相同,只有乘法运算有较大差别。两个数组相乘就是对应元素相乘,条件是两个数组的结构相同。事实上,及时两个数组的结构不同,只要满足特定条件,也能做乘法运算

import numpy as np

a = np.random.randint(0,10,(2,3))
print(a)

b = np.random.randint(0,10,3)
print(b)

print(a*b) # shape不同的两个数组也可以相乘
print(b*a)

除了对应元素相乘,数组还可以使用np.dot()函数相乘

a = np.random.randint(0,10,(2,3))
b = np.random.randint(0,10,3)
c = np.random.randint(0,10,(3,2))

print(np.dot(a,b))
print(np.dot(a,c))

属于数组而言,使用星号相乘和使用np.dot()函数相乘是完全不同的两种乘法:对于矩阵来说,不管是使用星号相乘还是使用np.dot()函数相乘,结果都是np.dot()函数相乘的结果,因为矩阵没有对应元素相乘这个概念。np.dot()函数实现的乘法就是矩阵乘法

不是所有的矩阵都能相乘,矩阵乘法不满足交换律。概括来说,就是矩阵A的各行逐一去乘矩阵B的各列。例如,矩阵A的第1行和矩阵B的第1列,它们的元素个数一定相等,对应元素相乘后求和的值作为结果矩阵第1行第1列的值。又如,矩阵A的第3行和矩阵B的第3列,对应元素相乘后求和的值作为结果矩阵第3行第3列的值。以此类推,最终得到矩阵A乘矩阵B的结果矩阵

到此这篇关于Python NumPy矩阵对象详解及方法的文章就介绍到这了,更多相关Python NumPy矩阵对象 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pycharm在创建py文件时,自动添加文件头注释的实例

    Pycharm在创建py文件时,自动添加文件头注释的实例

    今天小编就为大家分享一篇Pycharm在创建py文件时,自动添加文件头注释的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python3实现elasticsearch批量更新数据

    python3实现elasticsearch批量更新数据

    今天小编就为大家分享一篇python3实现elasticsearch批量更新数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python中glob库实现文件名的匹配

    Python中glob库实现文件名的匹配

    本文主要主要介绍了Python中glob库实现文件名的匹配,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Python之random库的常用函数有哪些

    Python之random库的常用函数有哪些

    这篇文章主要为大家详细介绍了Python之random库的常用函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 解决NameError:name'pip'is not defined使用pip时报错问题

    解决NameError:name'pip'is not defined使用pip

    使用pip时遇到NameError:name ‘pip’ is not defined错误通常是由于在Python环境内直接尝试运行pip命令导致的,正确的做法是在Python外部的命令行中运行pip命令,这个错误提醒我们在使用pip时,应确保在正确的环境中执行相关命令
    2024-10-10
  • python自制简易mysql连接池的实现示例

    python自制简易mysql连接池的实现示例

    本文主要介绍了python自制简易mysql连接池的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 使用 Python 列出串口的实现方法

    使用 Python 列出串口的实现方法

    有时在编程时,我们需要获取有关系统中可用通信端口的信息, 我们将讨论如何使用 Python 来做到这一点,将讨论使用串口或 com 端口的通信, 我们将深入探索 Python 包,以帮助我们获得系统的可用通信端口,感兴趣的朋友一起看看吧
    2023-08-08
  • Python Pandas删除替换并提取其中的缺失值NaN(dropna,fillna,isnull)

    Python Pandas删除替换并提取其中的缺失值NaN(dropna,fillna,isnull)

    这篇文章主要给大家介绍了关于Python Pandas删除替换并提取其中的缺失值NaN(dropna,fillna,isnull)的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用Pandas具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Python中title()方法的使用简介

    Python中title()方法的使用简介

    这篇文章主要介绍了Python中title()方法的使用简介,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python实现数值积分方式

    Python实现数值积分方式

    今天小编就为大家分享一篇Python实现数值积分方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论