切片 import numpy as np # 使用切片參數start:stop:step來進行切片操作 a_array=np.arange(10) print(a_array,'\n') b_array=a_array[1:10:2] print(b_array,'\n') c_array=a_a ...
切片
import numpy as np
# 使用切片參數start:stop:step來進行切片操作
a_array=np.arange(10)
print(a_array,'\n')
b_array=a_array[1:10:2]
print(b_array,'\n')
c_array=a_array[2:]
print(c_array,'\n')
d_array=a_array[:5]
print(d_array)
[0 1 2 3 4 5 6 7 8 9]
[1 3 5 7 9]
[2 3 4 5 6 7 8 9]
[0 1 2 3 4]
# 多維數組切片操作
a_array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a_array,'\n')
# 從a_array[n:]開始切割
print(a_array[1:],'\n')
# 第n列元素
print(a_array[...,0],'\n')
# 第n行元素
print(a_array[1,...],'\n')
# 第n列及剩下的所有元素
print(a_array[...,1:],'\n')
# 第n行及剩下的所有元素
print(a_array[1:,...])
[[1 2 3]
[4 5 6]
[7 8 9]]
[[4 5 6]
[7 8 9]]
[1 4 7]
[4 5 6]
[[2 3]
[5 6]
[8 9]]
[[4 5 6]
[7 8 9]]
numpy高級索引
# 整數數組索引
array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(array,'\n')
#獲取(0,0),(1,1),(2,2)處的元素
print(array[[0,1,2],[0,1,2]],'\n')
#獲取(0,0),(0,2),(2,0),(2,2)處的元素
print(array[np.array([[0,0],[2,2]]),np.array([[0,2],[0,2]])])
[[1 2 3]
[4 5 6]
[7 8 9]]
[1 5 9]
[[1 3]
[7 9]]
# 切片
array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(array,'\n')
print(array[0:2,0:2],'\n')
print(array[...,0:2])
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2]
[4 5]]
[[1 2]
[4 5]
[7 8]]
# 布爾索引
array=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(array,'\n')
#獲取大於3的元素
print(array[array>3])
[[1 2 3]
[4 5 6]
[7 8 9]]
[4 5 6 7 8 9]
# 花式索引
array=np.arange(25).reshape(5,5)
print(array,'\n')
#獲取第1,2,3行元素
print(array[[1,2,3]],'\n')
#獲取後三行元素
print(array[[-1,-2,-3]])
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
[[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
[[20 21 22 23 24]
[15 16 17 18 19]
[10 11 12 13 14]]
# 還是花式索引
array=np.arange(25).reshape(5,5)
print(array,'\n')
# 先選取行,再將列排序
print(array[[2,1,3]][:,[2,3,1,4,0]],'\n')
# 用numpy.ix_()函數,輸入兩個數組,產生笛卡爾積的映射關係
print(array[np.ix_([2,1,3],[2,3,1,4,0])])
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
[[12 13 11 14 10]
[ 7 8 6 9 5]
[17 18 16 19 15]]
[[12 13 11 14 10]
[ 7 8 6 9 5]
[17 18 16 19 15]]