索引和切片在基礎語法那篇文章中介紹過,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 顧頭不顧尾,也可以使用步長,不過...