Python數據處理之(六)numpy索引

一、一維索引

在元素列表或者數組中,我們可以用如同a[2]一樣的索引方法,同樣的,在Numpy中也有相對應的表示方法。

>>> import numpy as np
>>> A=np.arange(3,15)
>>> print(A)
[ 3  4  5  6  7  8  9 10 11 12 13 14]
>>> print(A[3])
6

讓我們將矩陣轉換爲二維的,此時進行同樣的操作:

>>> A=np.arange(3,15).reshape((3,4))
>>> print(A)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
>>> print(A[2])
[11 12 13 14]

可以看出,A[2]對應的是矩陣A的第行(因爲索引是從0開始的)

二、二維索引

二維矩陣中想要具體的單個元素(A[行][列]):

>>> import numpy as np
>>> A=np.arange(3,15).reshape((3,4))
>>> print(A)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
>>> print(A[2][1])
12

也可以採用下面這種形式(A[行,列]):

>>> print(A[2,1])
12

在Python的 list 中,我們可以利用:對一定範圍內的元素進行切片操作,在Numpy中我們依然可以給出相應的方法:

>>> print(A[2][0:2])
[11 12]
>>> print(A[2,0:2])
[11 12]

對第3行中第0到第```列元素進行切片輸出(不包含第2列)。
我們適當的利用for函數進行打印:

>>> A=np.arange(3,15).reshape((3,4))
>>> print(A)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
>>> for i in A:
	print(i)

[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]

上邊是按行輸出,如果想按列輸出,就對A進行轉置操作:A.T

>>> for i in A.T:
	print(i)

[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]

最後依然說一些關於迭代輸出的問題,這一腳本中的flatten是一個展開性質的函數,將多維的矩陣進行展開成1行的數列。而flat是一個迭代器,本身是一個object屬性。

>>> import numpy as np
>>> A=np.arange(3,15).reshape((3,4))
>>> print(A)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
>>> print(A.flatten)
<built-in method flatten of numpy.ndarray object at 0x0000018569A42C60>
>>> print(A.flatten())
[ 3  4  5  6  7  8  9 10 11 12 13 14]
>>> for i in A.flat:
	print(i)

3
4
5
6
7
8
9
10
11
12
13
14
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章