Matlab与Python/Numpy高维矩阵线性索引顺序的区别

本文对比了Numpy和Matlab在创建及布尔索引高维矩阵时的顺序差异。Numpy按照z-y-x顺序填充元素,而Matlab则是从最低维开始逐层叠加。在布尔索引时,Numpy的索引顺序与其创建矩阵时一致,而Matlab保持了创建时的维度顺序。
摘要由CSDN通过智能技术生成

这里我将在介绍索引顺序之前介绍一下创建矩阵,因为这里也是利用的线性索引,有助于理解后面的索引顺序。

创建矩阵

同样是创建从1到60的3×4×5的三维矩阵,可以从下面这个简单的例子中一窥两者的区别,大家可以体会一下。为了方便观察,三维图只展示了落在三个平面上的数字,但应该已经足够理解了。

Numpy:

import numpy as np
a=np.arange(1,61).reshape(3,4,5)

我们可以看到,Numpy是按照z-y-x的顺序填充元素的,想象比作把元素向矩阵容器里塞,每个z轴是一根管子,那就是在塞满a[0,0,:]后,接着去塞a[0,1,:],到第二维被塞满后才去塞a[1,0,:]。

Matlab:

b=reshape(1:60,[3,4,5])

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值