Numpy 索引及切片

2021-09-20 13:19:41 字數 1981 閱讀 8843

索引和切片在基礎語法那篇文章中介紹過,python內建的資料型別基本都可以使用索引和切片,numpy是乙個陣列物件,我們來看看它的索引和切片有什麼不同的地方。

普通索引及切片

# 一維陣列:和python中的列表一樣

ar = np.arange(20)

print

(ar)

print

(ar[4]

)print

(ar[3:

6])# 二維陣列

ar = np.arange(16)

.reshape(4,

4)print

(ar,

'陣列軸數為%i'

%ar.ndim)

# 4*4的陣列

print

(ar[2]

,'陣列軸數為%i'

%ar[2]

.ndim)

# 切片為下一維度的乙個元素,所以是一維陣列

print

(ar[2]

[1])

# 二次索引,得到一維陣列中的乙個值

print

(ar[1:

3],'陣列軸數為%i'

%ar[1:

3].ndim)

# 切片為兩個一維陣列組成的二維陣列

print

(ar[2,

2])# 切片陣列中的第三行第三列 → 10

print

(ar[:2

,1:]

)# 切片陣列中的1,2行、2,3,4列 → 二維陣列

結果如下:

布林索引及切片

ar = np.arange(12)

.reshape(3,

4)i = np.array(

[true

,false

,true])

j = np.array(

[true

,true

,false

,false])

print

(ar)

print

(i)print

(j)print

(ar[i,:]

)# 在第一維度做判斷,只保留true,這裡第一維度就是行,ar[i,:] = ar[i](簡單書寫格式)

print

(ar[

:,j]

)# 在第二維度做判斷,這裡如果ar[:,i]會有警告,因為i是3個元素,而ar在列上有4個

m = ar >

5print

(m)# 這裡m是乙個判斷矩陣

print

(ar[m]

)

結果如下:

用m判斷矩陣去篩選ar陣列中》5的元素 ,這個是重點!pandas判斷方式原理就來自此處。

陣列索引及切片的值更改、複製

ar = np.arange(10)

print

(ar)

ar[5]=

100ar[7:

9]=200

print

(ar)

# 乙個標量賦值給乙個索引/切片時,會自動改變/傳播原始陣列

ar = np.arange(10)

b = ar.copy()b[

7:9]

=200

print

(ar)

print

(b)# 複製

numpy 索引及切片

布林型索引及切片 陣列索引及切片值的更改 複製 import numpy a numpy.arange 0,20 print a print a 4 print a 4 10 import numpy b numpy.arange 0,16 reshape 4,4 print b print b 2...

numpy索引與切片

作用 要獲取陣列的單個元素,指定元素的索引即可 例子 print x 2 3 print x 2 21 22 23 24 25 print x 2 1 22 print x 2,1 22 切片操作是指抽取陣列的一部分元素生成新陣列。對 python列表進行切片操作得到的陣列是原陣列的 副本,而對 n...

numpy 索引和切片

一 取行 1 單行 陣列 index,取第index 1行 例子import numpy as np arr1 np.arange 0,24 reshape 4,6 取第2行資料 row1 arr1 1,print row1 2 連續的多行 陣列 start end 顧頭不顧尾,也可以使用步長,不過...