Numpy陣列索引與切片 高階索引

2021-10-01 04:04:02 字數 1539 閱讀 4806

有一些numpy中索引結果時候不太理解的地方,以後可以多多熟悉,熟悉後加以運用。

import numpy as np

a = np.array([[

1,2,

3],[

3,4,

5],[

4,5,

6]])

print

(a[...

,1])

# 第2列元素

print

(a[1,.

..])

# 第2行元素

print

(a[...

,1:]

)# 第2列及剩下的所有元素

整數陣列的索引

以下例項獲取陣列中(0,0),(1,1)和(2,0)位置處的元素。

這個地方行和列分別用了兩個矩陣進行儲存

import numpy as np 

x = np.array([[

1,2]

,[3,

4],[

5,6]

]) y = x[[0

,1,2

],[0

,1,0

]]print

(y)

輸出結果

[14

5]

以下例項獲取了 4x3 陣列中的四個角的元素。 行索引是 [0,0] 和 [3,3],而列索引是 [0,2] 和 [0,2]。

四個角的元素是 [0,0] [0,2] [3,0] [3,2]

這裡剛開始有乙個不理解的地方是,為什麼行、列分成了兩個陣列,如果這樣分開的話,輸出的結果也會是兩個陣列。

如果寫在一起,是乙個一維陣列的輸出。

import numpy as np 

x = np.array([[

0,1,

2],[

3,4,

5],[

6,7,

8],[

9,10,

11]])

print

('我們的陣列是:'

)print

(x)print

('\n'

)rows = np.array([[

0,0]

,[3,

3]])

cols = np.array([[

0,2]

,[0,

2]])

y = x[rows,cols]

print

('這個陣列的四個角元素是:'

)print

(y)

輸出結果

我們的陣列是:[[

012]

[345

][67

8][9

1011]]

這個陣列的四個角元素是:[[

02][

911]]

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 基礎索引與切片

首先你新建立了額乙個 ndarray 陣列 arr np.arange 10 和python的列表相似的,你可以通過索引和切片來取值 print arr 6 索引從0開始 print arr 5 8 顧頭不顧尾6 5 6 7 和列表一樣,陣列裡的切片取值也是顧頭不顧尾,並且索引是從0開始的。重要的乙...

Numpy 索引及切片

索引和切片在基礎語法那篇文章中介紹過,python內建的資料型別基本都可以使用索引和切片,numpy是乙個陣列物件,我們來看看它的索引和切片有什麼不同的地方。普通索引及切片 一維陣列 和python中的列表一樣 ar np.arange 20 print ar print ar 4 print ar...