最近使用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是從右往左...