個人學習筆記!
切片語法:
x[ start : stop : step ]
一、一維陣列的切片
import numpy as np
x = np.arange(5,13)
xout[4]:array([ 5, 6, 7, 8, 9, 10, 11, 12])
x[:3]#前3個元素,即索引0~2所代表的元素
out[6]:array([5, 6, 7])
x[3:]#索引3及往後的所有元素
out[7]:array([ 8, 9, 10, 11, 12])
x[::2]#每隔乙個元素
out[8]:array([ 5, 7, 9, 11])
x[::-1]#陣列元素逆序
out[9]:array([12, 11, 10, 9, 8, 7, 6, 5])
二、多維陣列的切片
以二維為例:
import numpy as np
x=np.random.randint(0,11,(3,4))
xout[12]:
array([[2, 7, 3, 0],
[1, 1, 0, 1],
[4, 3, 0, 6]])
x[:2,:3]#前兩行,前三列
out[13]:
array([[2, 7, 3],
[1, 1, 0]])
x[::-1,::-1]#陣列所有元素逆序
out[15]:
array([[6, 0, 3, 4],
[1, 0, 1, 1],
[0, 3, 7, 2]])
#獲取二維陣列的單行和單列:索引+切片
x[:,1]#第2列
out[16]:
array([7, 1, 3])
三、陣列切片返回的不是資料的副本
與python內建資料型別list相區別,list切片返回的是值的副本。而numpy陣列切片返回的是陣列資料的檢視,不是數值資料的副本(摘自python資料科學手冊),接下來從**理解:
x
out[19]:
array([[2, 7, 3, 0],
[1, 1, 0, 1],
[4, 3, 0, 6]])
x_sub = x[:2,:2]
x_sub
out[22]:
array([[2, 7],
[1, 1]])
x_sub[0,0]=5 #陣列切片的值被修改後,原陣列也被修改了
out[23]:
array([[5, 7, 3, 0],
[1, 1, 0, 1],
[4, 3, 0, 6]])
四、建立numpy陣列的副本
用copy()方法。**略...
numpy中的陣列切片
如同python中自帶的切片,numpy中也有類似的切片功能。接下來對兩個功能進行一下簡單的對比。首先測試python自帶的功能,在shell視窗中測試如下 in 1 data range 10 in 2 data out 2 0,1,2,3,4,5,6,7,8,9 in 3 data1 data ...
Python中numpy陣列切片
python中符合切片並且常用的有 列表,字串,元組。下面那列表來說明,其他的也是一樣的。格式 開頭 結束 步長 開頭 當步長 0時,不寫預設0。當步長 0時,不寫預設 1 結束 當步長 0時,不寫預設列表長度加一。當步長 0時,不寫預設負的列表長度減一 步長 預設1,0 是從左往右走,0是從右往左...
Numpy(二) 陣列的索引和切片
ndarray物件的內容可以通過索引或切片來訪問和修改,與 python 中 list 的切片操作一樣。ndarray 陣列可以基於 0 n 的下標進行索引,切片物件可以通過內建的 slice 函式,並設定 start,stop 及 step 引數進行,從原陣列中切割出乙個新陣列。ndarray s...