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

python之numpy(3 矩阵属性及矩阵运算)

属性

在numpy中可以显示矩阵的很多属性,如矩阵大小、元素个数、数据类型等。

import numpy as np
x=np.array([[1,2,3,4],[1,2,3,4]
])
print(f'这个矩阵的规格为{x.shape}')
print(f'这个矩阵有{x.size}个元素')
print(f'这个矩阵的维度为{x.ndim}')
print(f'这个矩阵的数据类型为{x.dtype}')
print(f'矩阵的转置为{x.T}')

类似的属性还有很多,不再赘述。

矩阵的运算

矩阵的运算分为矩阵元素之间的运算和矩阵之间的运算,当然两者的区别在加法、减法之间是没有区别的,在乘法之间有所区别。

import numpy as np
x=np.array([[1,2,3],[2,3,4],[3,4,5]
])
y=np.array([[2,3,4],[2,4,5],[2,3,2]
])
print(x*y)
print(x-y)
print(x+y)
print(x.dot(y))
print(np.dot(x,y.T))
print(np.linalg.inv(y))#逆矩阵
print(np.linalg.det(x))#行列式
print(np.linalg.matrix_rank(x))#矩阵的秩

上述代码中,x*y是对应元素之间的相乘,而矩阵之间的点乘是x.dot(y)或者是np.dot(x,y)。x.T表示x的转置。

np.linalg.inv()是求矩阵的逆,np.linalg.det()是求矩阵的行列式,np.linalg.matrix_rank是求矩阵秩。

除了矩阵之间的运算外还有一些统计运算,如求和,求平均值等。

求最值:

import numpy as np
x=np.array([[1,2,3],[2,3,4],[3,4,5]
])
print(np.max(x))
print(np.min(x))
print(np.min(x,axis=0))
print(np.argmax(x))
print(np.argmin(x))

其中,倒数第三行中的axis=0表示每一列的最小值(axis=1表示每一行求最值),返回是一个1×3的数组。最后两行表示返回最值的索引,这个索引是一行一行排列的,从0开始。

求和:

import numpy as np
x=np.array([[1,2,3],[2,3,4],[3,4,5]
])
print(np.sum(x,axis=0))

求均值:

import numpy as np
x=np.array([[1,2,3],[2,3,4],[3,4,5]
])
print(np.mean(x))
m=np.average(x,weights=np.ones((3,3)))
print(m)

其中average可以求加权平均数,weights表示对x所加的权重,两者大小相同。

其他:

import numpy as np
x=np.array([[1,2,3],[2,3,4],[3,4,5]
])
print(np.median(x))
print(np.cumsum(x))
print(np.diff(x))
print(np.nonzero(x))
print(np.sort(x))
print(np.transpose(x))
print(np.clip(x,1.4,3.5))

结果:

3.0
[ 1  3  6  8 11 15 18 22 27]
[[1 1][1 1][1 1]]
(array([0, 0, 0, 1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2, 0, 1, 2]))
[[1 2 3][2 3 4][3 4 5]]
[[1 2 3][2 3 4][3 4 5]]
[[1.4 2.  3. ][2.  3.  3.5][3.  3.5 3.5]]
请按任意键继续. . .

np.median(x)  返回中位数

np.cumsum(x) 返回逐个累加后的数

np.diff(x) 返回逐差后的数

np.nonzero(x) 返回两个数组,第一个数组是非零数的横坐标位置,第二个数组是非零数组的纵坐标位置

np.sort(x) 逐行排序,从小到大排序

np.transpose(x) 矩阵转置,等效于x.T

注:如果定义的数组是x=np.array([1,2,3])那么此函数失效,如果定义的是x=np.array([ [1,2,3] ])则可以转置。对于第一种情况可以使用reshape强制改变大小。

np.clip(x,1.4,3.5)   将数组中的元素限制在指定的最小值和最大值之间。如果数组中的元素小于最小值,则会被替换为最小值;如果元素大于最大值,则会被替换为最大值;如果元素在最小值和最大值之间(包括边界值),则保持不变。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 破解 Google 账户注册难题丨0到1学习谷歌广告(1)
  • uniapp实现足球数据分析平台移动端H5
  • js取消焦点事件
  • python中有哪些常用语言成分?
  • 【安全】XSS
  • UniAD_面向规划的自动驾驶
  • OpenCV图像处理——直线拟合并找出拟合直线的起点与端点
  • multimodel ocr dataset
  • 密码学基础---椭圆曲线一文打尽
  • 鸿蒙开发入门day10-组件导航
  • Python办公自动化:使用openpyxl 创建与保存 Excel 工作簿
  • MATLAB 手动实现投影密度法分割建筑物立面 (73)
  • Chart.js:内容、优点及使用方法
  • 常见的排序算法汇总(详解篇)
  • 稚晖君发布5款全能人形机器人,开源创新,全能应用
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Android Volley源码解析
  • css属性的继承、初识值、计算值、当前值、应用值
  • Hexo+码云+git快速搭建免费的静态Blog
  • JS数组方法汇总
  • React16时代,该用什么姿势写 React ?
  • SSH 免密登录
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 工作手记之html2canvas使用概述
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 微信支付JSAPI,实测!终极方案
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 白色的风信子
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​Linux·i2c驱动架构​
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​马来语翻译中文去哪比较好?
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (55)MOS管专题--->(10)MOS管的封装
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (力扣)循环队列的实现与详解(C语言)
  • (七)Activiti-modeler中文支持
  • (十三)MipMap
  • (四)JPA - JQPL 实现增删改查
  • (算法)硬币问题
  • (转载)Linux网络编程入门
  • ******之网络***——物理***
  • . Flume面试题
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net core Redis 使用有序集合实现延迟队列
  • .NET Core Web APi类库如何内嵌运行?
  • .Net(C#)常用转换byte转uint32、byte转float等