python matrix/array反向切片


>>> import numpy as np
>>> m = np.mat([[1.,1,1],[1,2,3,],[1,5,1,]])
>>> m
matrix([[ 1.,  1.,  1.],
        [ 1.,  2.,  3.],
        [ 1.,  5.,  1.]])

>>> m[2:0,:] #錯誤,選中的元素為0
matrix([], shape=(0, 3), dtype=float64)

# 第一種切法
>>> m[-2:-1,:] #正確,選中倒數第二列 matrix([[ 1., 2., 3.]])
# 第二種切法
#或者使用兩個:: 如a:b:c 意為從a以c步長到b >>> m[2:0:-1,:] # 正確,選中2,1行 matrix([[ 1., 5., 1.], [ 1., 2., 3.]])

 但是要注意,反向切片時,第二種切法m[2:0:-1,:]第二位不能是-1,不然會把這個-1認為是第一種反向切片;第一種切法m[-2:-1,:]第一位不能是正數

總結一下上面這句話就是,第一種切法必須全是負數,第二種切法必須全是正數,不能混合,如m[2:-1,:],m[2:-1:-1,:]均是錯誤的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM