語法:[start:stop:step]a = [1,3,4,2,'a','d']
print a[::-1]
>>> a = [1,3,4,2,'a','d']
print a[3::-1]
>>> [2,4,3,1]
step代表切片步長;切片區間為[start,stop),包含start但不包含stop
1.step > 0,從左往右切片
2.step <0,從右往左切片
3.start、stop、step 為空值時的理解:
start、stop預設為列表的頭和尾,並且根據step的正負進行顛倒;step的預設值為1
4.start、stop為負,無論step正負,start、stop代表的是列表從左到右的倒數第幾個元素
st = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(st[2:6:2])
print(st[6:2:-2])
print(st[::1])
print(st[::-1]) # 倒序輸出
print(st[-1])
輸出結果:
['c', 'e']
['g', 'e']
['a', 'b', 'c', 'd', 'e', 'f', 'g']
['g', 'f', 'e', 'd', 'c', 'b', 'a']
g
numpy
list = [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[2, 2, 3], [4, 9, 6], [7, 8, 9]]]
list = np.array(list)
print(list[:, 1, :])
print(list[:, -1, 0])
[[4 5 6]
[4 9 6]]
[7 7]
numpy作為乙個高效率的矩陣計算工具,除了基本的加減乘除以及切片外,還有比較獨特的索引功能。索引功能我們比較常見有序號索引以及轉置,如下:
import numpy as np
arr = np.arange(20).reshape(4,5)
##建立了乙個4行5列的矩陣
##索引取其中的第4、3、1、2行
arr[[3,2,0,1]]
##獲取其轉置矩陣
arr.t
##變成了5行4列的矩陣
當我們開始遇到多維陣列時,題目中提到的transpose和swapaxes就開始發揮作用了。
1.1 transpose 按照多維陣列的軸的索引進行變換。
乍一聽是不是有點繞,別急,慢慢來。首先我們來了解下多維陣列的軸是什麼東東?
對於多維陣列來說,乙個維度就是乙個軸。
我們知道一維為一條線,二維為乙個平面,三維為乙個空間,到四維已經超越了我們人類肉眼能夠觀測的空間。
arr1.ndim = 1 arr1.shape = (4,)
[5,6,7,8]]),
arr1.ndim = 2 arr2.shape = (2,4)
[5,6,7,8]],
[[9,10,11,12],
[13,14,15,16]]]),
arr2.ndim = 3 arr3.shape = (2,2,4)
是否大概對軸有乙個直觀的了解?
言歸正傳,對於transpose來說,會將多維陣列的軸編號,也就是給各個軸建立索引,我們自設乙個三維陣列,維數為(2,2,4),有三個軸:
arr = np.arange(16).reshape(2,2,4)
當我們進行變換時,有arr.transpose(2,1,0),這裡就是讓索引2變換到了索引0的位置,索引0變到了索引2的位置,索引1保持不變,根據索引的變動,形狀也發生相關位置的變化,如下:
這個時候,我們的多維陣列就變成了:
1.2 swapaxes 對軸進行兩兩置換
理解了上面的transpose,應該再理解swapaxes就不難了。swapaxes實際上也是針對軸索引進行變化,區別就在於transpose可以一次搞三個,但是swapaxes只能兩兩置換。
對於swapaxes來說,括號內的兩引數,交換位置和不交換,實際結果相同。
接上例:
arr.swapaxes(1,2)(實際上等價於arr.swapaxes(2,1)),那麼原多維陣列就變為:
也就是:
學習筆記 Python List切片方法
初始化一列表如下 a 1,2,3,4,5,6,7,8,9,10 對列表進行一系列切片操作以及對應操作的輸出 print a 4 取前4個元素 1,2,3,4 print a 3 取第三個元素之後的所有元素 4,5,6,7,8,9,10 print a 3 a 3 相當於a 3 預設步長為1 4,5,...
python list巢狀的切片,規律難以理解
一維python list的切片沒有問題。可是巢狀list也就是多維的切片,規律就難以理解,目前還沒找到規律,請看下面的 def printm1m2 print m1 print m2 m1 1,2,3,4 21,22,23,24 31,32,33,34 m2 100,200,300,400 101...
python list 常用方法總結
參考 只要把逗號分隔的不同的資料項使用方括號 括起來即可 下標 角標,索引 從0開始,最後乙個元素的下標可以寫 1 list1 a aa aaa aaaa aaa list1 空列表 aaaa 在list 末尾增加乙個元素 list insert 2 ccc 在指定位置新增元素,如果指定的下標不存在...