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

校园网站建设测试目的/百度搜索资源平台提交

校园网站建设测试目的,百度搜索资源平台提交,wordpress oss官方,石家庄新闻发布会跟Python的IO读写功能一样,numpy中也有文件的读写功能,将ndarray对象也可以保存到磁盘文件并从磁盘文件加载。方便保存使用numpy编写的代码。在numpy中也有一些高级的库,今天我们这里简单讲一下矩阵库和线性代数的库,让我们更了解numpy这个模块。一、IO操作Numpy 可以读写磁盘上…
de37ed96c8a5443cba2958537d09c0a0.png

跟Python的IO读写功能一样,numpy中也有文件的读写功能,将ndarray对象也可以保存到磁盘文件并从磁盘文件加载。方便保存使用numpy编写的代码。在numpy中也有一些高级的库,今天我们这里简单讲一下矩阵库和线性代数的库,让我们更了解numpy这个模块。

一、IO操作

Numpy 可以读写磁盘上的文本数据或二进制数据。NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。现在在Numpy中可用的IO功能有:

  • Load()和save()函数处理numpy二进制文件(需要带npy扩展名)Loadtxt()和savetxt()函数处理正常的文本文件

Numpy为ndarray对象引入了一个简单的文件格式,这个npy文件在磁盘文件中,存储重建ndarray 所需的数据、图形、dtype 和其他信息,以便正确获取数组,即使该文件在具有不同架构的另一台机器上。

  1. numpy.save()

函数将输入的数组存储在具有npy扩展名的磁盘文件中。

dc2c67feb6529f398a54be8ec8d784b4.png

为了从outfile.npy重建数组,需要使用load()函数

433cea6e149c42911f8e5c6fbc77baa2.png

save() 和 load() 函数接受一个附加的布尔参数 allow_pickles。Python 中的 pickle 用于 在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。

2、savetxt()

函数以简单文本文件格式存储和获取数组数据,是通过 savetxt() 和 loadtx() 函数完成的。

f3da1db6dc72303c09518f17db33d503.png

savetxt() 和 loadtxt() 函数接受附加的可选参数,例如页首,页尾和分隔符。

二、numpy中的矩阵库

NumPy 包包含一个 Matrix 库 numpy.matlib 。此模块的函数返回矩阵而不是返回 ndarray对象。一个m*n的矩阵是一个由m行(row)n列(column)元素排列成的矩形阵列。矩阵里的元素可以是数字、符号或数学式。

130ba8face28717e99c84addb03a25bf.png
  1. matlib.empty()

函数返回一个新的矩阵,且不初始化元素。

ac8ce0a48b1d5c21020ac272172b9ebe.png

2、numpy.matlib.zeros()

此函数返回以0填充的矩阵。

846f9ab1e6a0a6d7ee87a7d86e1c0640.png

3、numpy.matlib.ones()

此函数返回以1填充的矩阵。

fdb0b336e1d22c78914b253058f05f8e.png

4、numpy.matlib.eye()

这个函数返回一个矩阵,对角线元素为 1,其他位置为零。

73f1f36cd08d55dc4d7c369a11f06457.png

5、numpy.matlib.identity()

函数返回给定大小的单位矩阵。单位矩阵是主对角线元素都为 1 的方阵。

1df433de507d0a339957abf033c5ceab.png

6、numpy.matlib.rand()

函数返回给定大小的填充随机值的矩阵

312ee10fadae2968a00acbafb761c158.png

在这里需要注意的是,矩阵总是二维的,而ndarray是一个n维数组,两个对象都是可以互换的,但是两个对象并不是相同的。

三、线性代数库

相信大家在学习线性代数的时候,都会觉得线性代数是非常难学的,线性代数就像一层硬纸,刚开始学习的时候是非常难以穿透的,但是只要认真的学下去,那么穿过那个点之后呢就恍然大悟,当然对线性代数掌握不是很好的人也没事,numpy中有专门的库numpy.linalg可以提供线性代数所需要的所有功能,我们可以先学习如何处理,然后在慢慢的去学习线性代数基础知识。

Numpy中提供的方法如下:

  • numpy.dot() 返回两个数组的点积numpy.vdot() 返回两个向量的点积numpy.inner() 返回一维数组的向量内积numpy.matmul() 返回两个数组的矩阵乘积numpy.linalg.det() 计算输入矩阵的行列式numpy.linalg.solve() 求解矩阵形式的线性方程的解numpy.linalg.inv() 计算矩阵的逆

接下来我们就一个一个方法开始学习如何处理线性代数的方法。

1、numpy.dot()

这个函数返回两个数组的点积。对于二维向量,相当于是矩阵乘法。对于一维数组,它是向量的内积。对于 N 维数组,它是a的最后一个轴上的和与b的倒数第二个轴的乘积。

1.1什么是矩阵乘法

在这里我在带领大家复习一下什么矩阵乘法,首先在百度中矩阵乘法的定义是这样的:

矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。

这么看其实是比较复杂的,但是咱们分开来学,也是很简单的,假设A矩阵为m行p列,B矩阵为p行n列,矩阵相乘后,A*B=C,那么C矩阵就是m行n列,也就是说矩阵C的行数=矩阵A的行数,矩阵C的列数=矩阵B的列数,矩阵相乘就是A矩阵的行去乘以B矩阵的列。这么说可能还是有一些复杂,咱们看一下实例就能明白了。

1.2实例

7550f965108cace402a2ade4235de95d.png
9523e54ef1634e064b563578fe3b6e4c.png

在这个例子中,C矩阵的第一行第一个元素的结果是A矩阵的第一行*B矩阵的第一列,也就是1*1+2*13=37,第一行第二个元素的结果为1*12+2*14=40。第二行第一个元素为3*11+4*13=85,第二行第二个元素为3*12+4*14=92。这么看的话是不是感觉就很清楚了。

在Python的较新版本中还支持了直接使用@号作为矩阵的乘法,避免在调用numpy.dot()方法了。

7461a76bfa27451841e5e15dc31c0b21.png

2、numpy.vdot()

这个函数返回两个向量的点积。如果第一个参数是复数,那么它的共轭复数会用于计算。如果参数是多维数组,它会被展开。

4a3d042f692c84665c360a086fe8f406.png

在这里看,点积也就是对应的元素相乘,也就是1*11+2*12+3*13+4*14=130,这个方法要求两个向量的元素相同不在乎行和列,如果不同的话则会报错。

4a3d042f692c84665c360a086fe8f406.png

3、numpy.inner()

这个函数返回一维数组的向量内积。对于更高的维度,它返回最后一个轴上的乘积的和。

3.1、一维数组

6b7b530391dee4b4f5e2ae81056d1ee2.png

结果等价于1*0+2*1+3*0

3.2、二维数组

4ac6fdf0d06c22ff5c809b4cae17641a.png
e9b1f29519621c43a1a53c4cec8907f6.png

上面的列子中,内积的计算如下

Array([[1*11+2*12,1*13+2*14],

[3*11+4*12,3*13+4*14]])

4、numpy.matmul()

这个函数结果返回两个数组的矩阵乘积。虽然它返回二维数组的正常乘积,但如果任一参数的维数大于 2,则将其视为存在于最后两个索引的矩阵的栈,并进行相应广播。另一方面,如果任一参数是一 维数组,则通过在其维度上附加 1 来将其提升为矩阵,并在乘法之后被去除。

4.1、对于二维数组来说,它就是矩阵的乘法

91df7e6d85f6a356cb60e843ccb9a876.png

4.2、二维和一维的运算

e49e64531219f3009dc7519830167cd5.png

计算的过程为:

Np.matmul(a,b)=[1*11+2*12 3*12+4*12]

Np.matmul(b,a)=[11*1+12*3 11*2+12*4]

4.3、维度大于2的数组

28319f2d7f470f24ca3222941fd8cf3f.png

计算过程为

Array([[[0*0+1*2,0*1+3*1],

[2*0+3*6,2*1+3*3]],

[[4*0+5*2,4*1+5*3],

[6*0+7*2,6*1+7*3]]])

5、numpy.linalg.det()

这个函数计算输入矩阵的行列式。行列式在线性代数中是非常有用的值。

e092b231711ac9eb562e320287b5125b.png
da6dc3768b8cc082a13212b74bb5964f.png

6、numpy.linalg.solve()

函数给出了矩阵形式的线性方程的解。

例如,考虑以下线性方程:

x + y + z = 6

2y + 5z = -4

2x + 5y - z = 27

可以使用矩阵表示为:

1 2 3

4 5 6 .$left[begin{matrix}xyzend{matrix|ight]

7 8 9

$

6

-4

27

如果矩阵成为A、X和B,方程变为B

28e5559aec46c5ba4f584859ec214970.png

7、numpy.linalg.inv()

这个函数是用来计算矩阵的逆。

75f570289d561d9c7eded8332b52fcf9.png
http://www.jmfq.cn/news/5183371.html

相关文章:

  • 什么网站做h5不收费/百度官网链接
  • 营销型网站分类/如何seo推广
  • html5 php网站源码下载/seo推广一个月见效
  • 网上做调查赚钱的网站有哪些/站长统计幸福宝
  • 网站上线步骤/营销方式和手段有哪些
  • 智能网站建设服务/今日新闻网
  • wordpress网站更换域名/seo分析工具有哪些
  • 做新媒体国外网站/多地优化完善疫情防控措施
  • 成都武侯区网站建设/网页设计是干嘛的
  • h5邀请函制作/seo关键词排名系统
  • 广州做网站的公/电商网站建设教程
  • 做网站域名有什么用/网络黄页推广软件
  • 一个空间做2个网站/西安网站seo技术
  • 免费搭建网站/如何写软文赚钱
  • 北京市城乡建设管理委员会官方网站/东莞搜索引擎推广
  • 那个网站做二手买卖的/天津seo排名效果好
  • 皮革材料做网站/如何引流被动加好友微信
  • 个人做网站赚钱/沪深300指数基金排名
  • 视频制作软件pr/网站优化排名易下拉霸屏
  • 做课件的软件下载带有蓝色的网站/济南seo网站优化公司
  • 东莞整站优化/百度公司
  • 怎么样让网站做的大气/广州代运营公司有哪些
  • 深圳市建筑工程/上海专业排名优化公司
  • 小程序网站/怎么自己做一个小程序
  • 深圳外贸网站开发/如何做好品牌宣传
  • 网站建设高效解决之道/国内seo排名分析主要针对百度
  • 网站结构和布局区别/北京百度搜索排名优化
  • 做任务挣钱的网站聚/5g网络优化培训
  • 图做的好的网站/十大app开发公司排名
  • WordPress伪静态公告404/优化搜索引擎的方法