Discuss / Python / 感觉python的切片操作和matlab的索引方式有异曲同工之妙

感觉python的切片操作和matlab的索引方式有异曲同工之妙

Topic source

matlab的索引方式有3种: 1.vector索引 2.linear索引 3.logic索引

python对于可索引的数据结构索引方式和matlab的1,3种有相似之处,第二种python不支持。

所谓向量索引: matlab: v=[1 2 3 4 5] v([5 2 3]) %取出1,2,3号元素 v([3:5]) %取出3~5号元素 v([2:4 1:4]) %取出5~8,再取出1~4号元素 v([1:2:end])%取出奇数元素 v([end:-1:1])%倒置向量

矩阵也可以进行相关索引:其中matrix(:) %表示vec(x),也就是拉直算子

对应的python表达方式: v[4] v[1] v[2] #取出1,2,3号元素

v[2:]#取出3~5号元素

vv=[v[1:4]],v[:4]] vv[:] #取出5~8,再取出1~4号元素

v[::2] #取出奇数元素

v[-1::-1]或v[::-1] #倒置向量

所谓logic索引: array(array>0)%array中所有>0的元素不变,其余元素置为0

python实现: filter(func,array)

这样可以更好理解用切片做这个的代码。 意见仅供参考,可能还有问题。大家共同进步 p.s.:用递归写的那个也很好;作者的求素数代码感觉有问题,运行不出来,还导致我linux崩溃

Eliefly

#2 Created at ... [Delete] [Delete and Lock User]

感觉有点小错误,但还是不错的对比,赞。 PS:作者的求素数代码运行没问题。


  • 1

Reply