初探numpy 切片和索引

2022-07-26 02:18:12 字數 2952 閱讀 4294

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]]

# 整數陣列索引

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]]

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 顧頭不顧尾,也可以使用步長,不過...

NumPy 切片和索引

import numpy asnp a np.arange 10,20,1 b slice 1,5,2 d a 1 5 2 e a 2 print a print a b print d print e 結果 1011 1213 1415 1617 1819 1113 1113 1213 1415 ...

numpy運算元組索引和切片

和列表 字串一樣操作即可 一維陣列 a numpy.arange 10,30 print a 一維陣列索引 print a 2 陣列中的第三個元素 print a 2 陣列中的倒數第二個元素 一維陣列切片 print a 5 10 從第六個開始到第11個 print a 1 10 2 從第二個開始到...