您的位置:首頁技術文章
文章詳情頁

Python 用NumPy創建二維數組的案例

瀏覽:73日期:2022-06-25 13:50:17
前言

上位機實戰開發先放一放,今天來學習一個新的內容—NumPy的使用

1 一維數組

例:用普通方法生成一維數組

num = [0 for i in range(1,5)] # 創建一維數組print(num) # 打印數組print('-'*50) # 分割線num[2]=6 # 將第三個元素修改位6print(num) # 打印數組print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

例:用numpy生成一維數組

from numpy import *m1 = arange(5)print(m1)print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

2 二維數組

例:用普通方法生成二維數組

num = [[0 for i in range(1,5)]for j in range(1,5)]print(num) # 打印數組print('-'*50) # 分割線num[2][1]=3 # 將第三行第二個元素修改為3print(num) # 打印數組print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

例:用numpy生成二維數組

from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創建6行3列的二維數組print(m1)print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

通過上圖發現,用普通方法創建的數組分隔符有逗號,而numpy創建的數組分隔符默認為空格。

3 二維數組的分片

請看程序注釋以及結果對照

from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創建6行3列的二維數組print(m1)print('-'*50) # 分割線print(m1[1][0:]) # [x][0:] 獲取第x行的全部元素(單行)print('-'*50) # 分割線print(m1[1:3]) # [x1:x2] 獲取第x1~x2行的全部元素(多行)print('-'*50) # 分割線print(m1[1::4]) # [x1::x2] 分片操作,從第x1行開始,步長為x2

運行結果

Python 用NumPy創建二維數組的案例

4 數組維度的操作

.reshape:將一維數組變成多維數組

用法:一維數組名.reshape(x,y,z)將一維數組改成三維數組

from numpy import *m1 = array([arange(1,9)]) # 創建一維數組print(m1)print('-'*50) # 分割線print(m1.reshape(2,2,2)) # 將一維數組轉為三維數組print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

.ravel或flatten:將多維數組變為一維數組

用法:數組名.ravel()或 數組名.flatten()

from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創建6行3列的二維數組print(m1)print('-'*50) # 分割線print(m1.ravel()) # 將一維數組轉為三維數組print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

.shape:將 高維數組 轉換成 低維數組

用法:數組名.shape(x行,列)

.transpose:將數組進行轉置

用法:數組名.transpose()

from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創建6行3列的二維數組print(m1)print('-'*50) # 分割線print(m1.transpose()) # 將數組轉置print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

5 數組的組合與分隔

5.1 水平組合

hastck:將數組水平拼接到一起

用法:hastck((數組A,數組B))水平拼接數組A和B

5.2 垂直組合

vstack:將數組垂直拼接到一起

用法:vstack(數組A,數組B)垂直拼接數組A和B

5.3 水平分隔

hsplit:

用法:hsplit(數組名,x)x為分成幾部分

5.4 垂直分隔

vsplit:

用法:vsplit(數組名,x)x為分成幾部分

6 數組轉列表

.tolist:將數組轉列表

用法:數組名.tolist()

7 數組的存儲和讀取及分隔符

savetxt和loadtxt函數可將數組保存為CSV文件。CSV文件的分隔符包括空格,逗號,分號等。savetxt和loadtxt函數默認使用的時空格作為分割符,也可以用delimiter關鍵字指定分隔符。

7.1數組的存儲

savetxt

用法:savetxt(“文件名.txt”,數組名,fmt=數組格式,delimiter=’;’)

補充:數組格式可以為 整數型(%d)浮點型(%f)

from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創建6行3列的二維數組print(m1)print('-'*50) # 分割線savetxt('文件名.txt',m1,fmt=’%d’,delimiter=’;’)

運行結果1

Python 用NumPy創建二維數組的案例

運行結果2(分隔符為空格)

Python 用NumPy創建二維數組的案例

7.2數組的讀取

loadtxt

用法:新數組 = loadtxt(“文件名.txt”,dtype=‘數組格式’,delimiter=’,’)

補充:數組格式可以為 整數型(int)浮點型(float)

from numpy import *print('-'*50) # 分割線a = loadtxt('文件名.txt',dtype=int,delimiter=’;’)print(a) # 將數組轉置print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

總結

savetxt在保存數據時也可以將普通數組中的分隔符改為空格

利用這個方法我們可以將帶有逗號的二維數組改為分隔符為空格或者分號的二維數組。

例:用列表的方法寫一個二維數組

# 二維數組創建from numpy import *num = [[0 for j in range(1,5)]for i in range(1,4)]print(num) # 打印數組print('-'*50) # 分割線num[2][1]=3 # 將第三行第二個元素修改為3print(num) # 打印數組print('-'*50) # 分割線savetxt('a.txt',num,fmt=’%d’,delimiter=’ ’) # 將數組保存為分隔符為空格的形式b = loadtxt('a.txt',dtype=int,delimiter=’ ’) # 將數組讀取出來賦給新數組print(b) # 打印新數組print('-'*50) # 分割線

運行結果

Python 用NumPy創建二維數組的案例

先將數組保存,然后讀取數組

Python 用NumPy創建二維數組的案例

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区