Python資料處理之(六)numpy索引
阿新 • • 發佈:2018-11-21
一、一維索引
在元素列表或者陣列中,我們可以用如同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