Python 用NumPy創(chuàng)建二維數(shù)組的案例
上位機(jī)實(shí)戰(zhàn)開發(fā)先放一放,今天來學(xué)習(xí)一個(gè)新的內(nèi)容—NumPy的使用
1 一維數(shù)組例:用普通方法生成一維數(shù)組
num = [0 for i in range(1,5)] # 創(chuàng)建一維數(shù)組print(num) # 打印數(shù)組print('-'*50) # 分割線num[2]=6 # 將第三個(gè)元素修改位6print(num) # 打印數(shù)組print('-'*50) # 分割線
運(yùn)行結(jié)果
例:用numpy生成一維數(shù)組
from numpy import *m1 = arange(5)print(m1)print('-'*50) # 分割線
運(yùn)行結(jié)果
例:用普通方法生成二維數(shù)組
num = [[0 for i in range(1,5)]for j in range(1,5)]print(num) # 打印數(shù)組print('-'*50) # 分割線num[2][1]=3 # 將第三行第二個(gè)元素修改為3print(num) # 打印數(shù)組print('-'*50) # 分割線
運(yùn)行結(jié)果
例:用numpy生成二維數(shù)組
from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創(chuàng)建6行3列的二維數(shù)組print(m1)print('-'*50) # 分割線
運(yùn)行結(jié)果
通過上圖發(fā)現(xiàn),用普通方法創(chuàng)建的數(shù)組分隔符有逗號(hào),而numpy創(chuàng)建的數(shù)組分隔符默認(rèn)為空格。
3 二維數(shù)組的分片請(qǐng)看程序注釋以及結(jié)果對(duì)照
from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創(chuàng)建6行3列的二維數(shù)組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行開始,步長(zhǎng)為x2
運(yùn)行結(jié)果
.reshape:將一維數(shù)組變成多維數(shù)組
用法:一維數(shù)組名.reshape(x,y,z)將一維數(shù)組改成三維數(shù)組
from numpy import *m1 = array([arange(1,9)]) # 創(chuàng)建一維數(shù)組print(m1)print('-'*50) # 分割線print(m1.reshape(2,2,2)) # 將一維數(shù)組轉(zhuǎn)為三維數(shù)組print('-'*50) # 分割線
運(yùn)行結(jié)果
.ravel或flatten:將多維數(shù)組變?yōu)橐痪S數(shù)組
用法:數(shù)組名.ravel()或 數(shù)組名.flatten()
from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創(chuàng)建6行3列的二維數(shù)組print(m1)print('-'*50) # 分割線print(m1.ravel()) # 將一維數(shù)組轉(zhuǎn)為三維數(shù)組print('-'*50) # 分割線
運(yùn)行結(jié)果
.shape:將 高維數(shù)組 轉(zhuǎn)換成 低維數(shù)組
用法:數(shù)組名.shape(x行,列)
.transpose:將數(shù)組進(jìn)行轉(zhuǎn)置
用法:數(shù)組名.transpose()
from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創(chuàng)建6行3列的二維數(shù)組print(m1)print('-'*50) # 分割線print(m1.transpose()) # 將數(shù)組轉(zhuǎn)置print('-'*50) # 分割線
運(yùn)行結(jié)果
5.1 水平組合
hastck:將數(shù)組水平拼接到一起
用法:hastck((數(shù)組A,數(shù)組B))水平拼接數(shù)組A和B
5.2 垂直組合
vstack:將數(shù)組垂直拼接到一起
用法:vstack(數(shù)組A,數(shù)組B)垂直拼接數(shù)組A和B
5.3 水平分隔
hsplit:
用法:hsplit(數(shù)組名,x)x為分成幾部分
5.4 垂直分隔
vsplit:
用法:vsplit(數(shù)組名,x)x為分成幾部分
6 數(shù)組轉(zhuǎn)列表.tolist:將數(shù)組轉(zhuǎn)列表
用法:數(shù)組名.tolist()
7 數(shù)組的存儲(chǔ)和讀取及分隔符savetxt和loadtxt函數(shù)可將數(shù)組保存為CSV文件。CSV文件的分隔符包括空格,逗號(hào),分號(hào)等。savetxt和loadtxt函數(shù)默認(rèn)使用的時(shí)空格作為分割符,也可以用delimiter關(guān)鍵字指定分隔符。
7.1數(shù)組的存儲(chǔ)
savetxt
用法:savetxt(“文件名.txt”,數(shù)組名,fmt=數(shù)組格式,delimiter=’;’)
補(bǔ)充:數(shù)組格式可以為 整數(shù)型(%d)浮點(diǎn)型(%f)
from numpy import *m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 創(chuàng)建6行3列的二維數(shù)組print(m1)print('-'*50) # 分割線savetxt('文件名.txt',m1,fmt=’%d’,delimiter=’;’)
運(yùn)行結(jié)果1
運(yùn)行結(jié)果2(分隔符為空格)
7.2數(shù)組的讀取
loadtxt
用法:新數(shù)組 = loadtxt(“文件名.txt”,dtype=‘?dāng)?shù)組格式’,delimiter=’,’)
補(bǔ)充:數(shù)組格式可以為 整數(shù)型(int)浮點(diǎn)型(float)
from numpy import *print('-'*50) # 分割線a = loadtxt('文件名.txt',dtype=int,delimiter=’;’)print(a) # 將數(shù)組轉(zhuǎn)置print('-'*50) # 分割線
運(yùn)行結(jié)果
savetxt在保存數(shù)據(jù)時(shí)也可以將普通數(shù)組中的分隔符改為空格
利用這個(gè)方法我們可以將帶有逗號(hào)的二維數(shù)組改為分隔符為空格或者分號(hào)的二維數(shù)組。
例:用列表的方法寫一個(gè)二維數(shù)組
# 二維數(shù)組創(chuàng)建from numpy import *num = [[0 for j in range(1,5)]for i in range(1,4)]print(num) # 打印數(shù)組print('-'*50) # 分割線num[2][1]=3 # 將第三行第二個(gè)元素修改為3print(num) # 打印數(shù)組print('-'*50) # 分割線savetxt('a.txt',num,fmt=’%d’,delimiter=’ ’) # 將數(shù)組保存為分隔符為空格的形式b = loadtxt('a.txt',dtype=int,delimiter=’ ’) # 將數(shù)組讀取出來賦給新數(shù)組print(b) # 打印新數(shù)組print('-'*50) # 分割線
運(yùn)行結(jié)果
先將數(shù)組保存,然后讀取數(shù)組
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報(bào)錯(cuò)問題分析2. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析3. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp4. SharePoint Server 2019新特性介紹5. ASP中常用的22個(gè)FSO文件操作函數(shù)整理6. React+umi+typeScript創(chuàng)建項(xiàng)目的過程7. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究8. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁9. 三個(gè)不常見的 HTML5 實(shí)用新特性簡(jiǎn)介10. php測(cè)試程序運(yùn)行速度和頁面執(zhí)行速度的代碼
