Python中的Numpy陣列常用操作

2021-09-02 01:18:11 字數 2563 閱讀 9805

最近使用keras做一些東西,然後會經常用到numpy來進行陣列的操作。途中在網上查詢了很多操作的相關方法,這裡將一些我常用到的方法記錄在這,用於遺忘後自己查閱(估計自己以後會經常使用python==),也用於大家查閱。

np.ones()函式與np.zeros()函式可以建立任意維度的全1或全0陣列。函式引數可按照ide的提示來進行填寫。

具體就是先建立具有資料的列表,然後將其轉換為陣列。如以下**所示(我經常這樣用==):

import numpy as np

a =[[1

,2,3

],[4

,5,6

]]na = np.array(a)

print

(na)

'''輸出為:

[[1 2 3]

[4 5 6]]

'''

由於python列表是層次巢狀的,所以索引元素方法為a[i][j];而numpy陣列為乙個整體,其索引方法為a[i, j]。在此基礎上就可以進行切片,比如:

使用np.sort()函式或陣列物件本身的sort()函式,其中np.sort()不改變原陣列物件的順序,而是返回乙個排序後的陣列物件。如下**所示:

**1 將每一行排序

import numpy as np

a =[[1

,3,3

],[4

,2,6

]]na = np.array(a)

nb = np.sort(na, axis=-1

)#axis預設為-1,此時將每一行進行排序

print

(na)

#na陣列並沒有改變排序

print

(nb)

#nb陣列為返回排序後的陣列

'''輸出為:

[[1 3 3]

[4 2 6]]

[[1 3 3]

[2 4 6]]

'''

**2 將每一列排序

import numpy as np

a =[[1

,3,3

],[4

,2,6

]]na = np.array(a)

na.sort(axis=0)

#axis預設為0,此時將每一列進行排序

print

(na)

#na陣列發生了改變

'''輸出為:

[[1 2 3]

[4 3 6]]

'''

(這個功能我也經常使用==),這裡要提一下argsort()函式,該函式返回陣列沿指定軸排序後的索引,我們可以使用某列排序後的索引來排序所有行。使用**如下:

**1 argsort()的用法

import numpy as np

a =[[1

,3,3

],[4

,2,6

]]na = np.array(a)

b = na.argsort(axis=0)

#獲取每一列排序後的索引

print

(b)'''

輸出為:

[[0 1 0]

[1 0 1]]

'''

**2 將所有行按第二列進行排序

import numpy as np

a =[[1

,3,3

],[4

,2,6

]]na = np.array(a)

b = na[na[:,

1].argsort()]

#獲取第二列排序後的索引,再用索引排序所有行

print

(b)'''

輸出為:

[[4 2 6]

[1 3 3]]

'''

np.concatenate()函式可以提供陣列拼接操作,使用**如下:

import numpy as np

a =[[1

,2],

[3,4

]]b =[[5

,6],

[7,8

]]na = np.array(a)

nb = np.array(b)

result = np.concatenate(

(na,nb)

,axis=1)

#按列拼接,預設axis=0時按行拼接

print

(result)

'''輸出為:

[[1 2 5 6]

[3 4 7 8]]

'''

Python中numpy陣列的合併

python中numpy陣列的合併有很多方法,如 np.concatenate np.stack np.hstack np.vstack np.dstack 其中最泛用的是第乙個和第二個。第乙個可讀性好,比較靈活,但是佔記憶體大。第二個則沒有記憶體占用大的問題。parameters introduc...

python中Numpy的陣列建立

numpy的主要物件是同種元素的多維陣列 特點 這是乙個所有元素都是一種型別,通過乙個正整數元組索引的元素 numpy底層是使用c編寫的 import numpy as np arr1 np.array 1,2,3 陣列的秩 軸的個數稱為秩 軸 axes 是陣列的維度 print arr1.ndim...

Python中numpy陣列切片

python中符合切片並且常用的有 列表,字串,元組。下面那列表來說明,其他的也是一樣的。格式 開頭 結束 步長 開頭 當步長 0時,不寫預設0。當步長 0時,不寫預設 1 結束 當步長 0時,不寫預設列表長度加一。當步長 0時,不寫預設負的列表長度減一 步長 預設1,0 是從左往右走,0是從右往左...