目錄
1. 獲取陣列值和陣列的分片
2. 改變陣列的維度
1. 獲取陣列值和陣列的分片
NumPy陣列也指出與Python串列相同的操作,例如,通過索引獲得陣列值,分片等,
下面的例子演示了如何通過索引獲得NumPy陣列的值,以及對NumPy陣列使用分片操作,
from numpy import *
# 定義一個二維的NumPy陣列
a = array([[1,2,3],[4,5,6],[7,8,9]])
# 輸出陣列a的第1行第1列的值,運行結果:1
print(a[0,0])
# 運行結果:a[0,1] = 2, a[2,1] = 8
print("a[0,1] = {}, a[2,1] = {}".format(a[0,1],a[2,1]))
# 分片操作,將3*3的二維陣列變成1*3的二維陣列,運行結果:[[1 2 3]]
print(a[0:1])
# 分片操作,獲取1*3的二維陣列的第1行的值,運行結果:[1 2 3]
print(a[0:1][0])
# 分片操作,將3*3二維陣列變成2*3的二維陣列
print(a[0:2])
b = a[0:]
# 分片操作,b與a的值是相同的
print(a)
# 分片操作,步長是2
print(a[0::2])
# 與a[0:2]的結果相同
print(a[-3:-1])
程式運行結果如圖1所示,

圖1 陣列的索引和分片操作
2. 改變陣列的維度
處理陣列的一項重要作業就是改變陣列的維度,包括提高陣列的維度和降低陣列的維度,還包括陣列的轉置,NumPy提供大量的API可以很輕松地完成這些陣列的操作,例如,通過reshape方法可以將一維陣列變成二維、三維或者多為陣列,通過ravel方法或flatten方法可以將多維陣列變成一維陣列,改變陣列的維度還可以直接設定NumPy陣列的shape屬性(元組型別),通過resize方法也可以改變陣列的維度,通過transpose方法可以對陣列進行轉置,本節將介紹NumPy中與陣列維度相關的常用API的使用方法,
下面的例子演示了如何利用NumPy中的API對陣列進行維度操作,
from numpy import *
b = arange(24).reshape(2,3,4)
# 將一維陣列變成三維陣列
print(b)
print('------------------')
# 將三維陣列變成一維陣列
b1 = b.ravel()
print(b1)
print('------------------')
# 將三維陣列變成一維陣列
b2 = b.flatten()
print(b2)
print('------------------')
# 將三維陣列變成二維陣列(6行4列)
b.shape = (6,4)
print(b)
print('------------------')
# 陣列轉置
b3 = b.transpose()
print(b3)
print('------------------')
# 將三維陣列變成二維陣列(2行12列)
b.resize((2,12))
print(b)
程式運行結果如圖2所示,

圖2 改變陣列的維度
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276310.html
標籤:AI
上一篇:NB-IoT的低功耗介紹
下一篇:15種圖神經網路的應用場景總結
