Python 用NumPy創(chuàng)建二維數(shù)組的案例
前言
上位機實戰(zhàn)開發(fā)先放一放,今天來學習一個新的內(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 # 將第三個元素修改位6 print(num) # 打印數(shù)組 print("-"*50) # 分割線
運行結(jié)果
例:用numpy生成一維數(shù)組
from numpy import * m1 = arange(5) print(m1) print("-"*50) # 分割線
運行結(jié)果
2 二維數(shù)組
例:用普通方法生成二維數(shù)組
num = [[0 for i in range(1,5)]for j in range(1,5)] print(num) # 打印數(shù)組 print("-"*50) # 分割線 num[2][1]=3 # 將第三行第二個元素修改為3 print(num) # 打印數(shù)組 print("-"*50) # 分割線
運行結(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) # 分割線
運行結(jié)果
通過上圖發(fā)現(xiàn),用普通方法創(chuàng)建的數(shù)組分隔符有逗號,而numpy創(chuàng)建的數(shù)組分隔符默認為空格。
3 二維數(shù)組的分片
請看程序注釋以及結(jié)果對照
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行開始,步長為x2
運行結(jié)果
4 數(shù)組維度的操作
.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) # 分割線
運行結(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) # 分割線
運行結(jié)果
.shape:將 高維數(shù)組 轉(zhuǎn)換成 低維數(shù)組
用法:數(shù)組名.shape(x行,列)
.transpose:將數(shù)組進行轉(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) # 分割線
運行結(jié)果
5 數(shù)組的組合與分隔
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ù)組的存儲和讀取及分隔符
savetxt和loadtxt函數(shù)可將數(shù)組保存為CSV文件。CSV文件的分隔符包括空格,逗號,分號等。savetxt和loadtxt函數(shù)默認使用的時空格作為分割符,也可以用delimiter關(guān)鍵字指定分隔符。
7.1數(shù)組的存儲
savetxt
用法:savetxt(“文件名.txt”,數(shù)組名,fmt=數(shù)組格式,delimiter=';')
補充:數(shù)組格式可以為 整數(shù)型(%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)]) # 創(chuàng)建6行3列的二維數(shù)組 print(m1) print("-"*50) # 分割線 savetxt("文件名.txt",m1,fmt='%d',delimiter=';')
運行結(jié)果1
運行結(jié)果2(分隔符為空格)
7.2數(shù)組的讀取
loadtxt
用法:新數(shù)組 = loadtxt(“文件名.txt”,dtype=‘數(shù)組格式',delimiter=',')
補充:數(shù)組格式可以為 整數(shù)型(int)浮點型(float)
from numpy import * print("-"*50) # 分割線 a = loadtxt("文件名.txt",dtype=int,delimiter=';') print(a) # 將數(shù)組轉(zhuǎn)置 print("-"*50) # 分割線
運行結(jié)果
總結(jié)
savetxt在保存數(shù)據(jù)時也可以將普通數(shù)組中的分隔符改為空格
利用這個方法我們可以將帶有逗號的二維數(shù)組改為分隔符為空格或者分號的二維數(shù)組。
例:用列表的方法寫一個二維數(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 # 將第三行第二個元素修改為3 print(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) # 分割線
運行結(jié)果
先將數(shù)組保存,然后讀取數(shù)組
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
創(chuàng)建Python Docker鏡像的詳細步驟
Python和Docker是兩個極其流行的技術(shù),結(jié)合它們可以創(chuàng)建強大的應(yīng)用程序,Docker允許將應(yīng)用程序及其依賴項打包到一個獨立的容器中,而Python則提供了豐富的庫和工具來開發(fā)應(yīng)用程序,本文將提供如何創(chuàng)建Python Docker鏡像的全面指南,,需要的朋友可以參考下2023-12-12python def 定義函數(shù),調(diào)用函數(shù)方式
這篇文章主要介紹了python def 定義函數(shù),調(diào)用函數(shù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06opencv3/C++實現(xiàn)視頻背景去除建模(BSM)
今天小編就為大家分享一篇opencv3/C++實現(xiàn)視頻背景去除建模(BSM),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python PyQt5實戰(zhàn)項目之查詢器的實現(xiàn)流程詳解
PyQt5以一套Python模塊的形式來實現(xiàn)功能。它包含了超過620個類,600個方法和函數(shù)。它是一個多平臺的工具套件,它可以運行在所有的主流操作系統(tǒng)中,包含Unix,Windows和Mac OS。PyQt5采用雙重許可模式。開發(fā)者可以在GPL和社區(qū)授權(quán)之間選擇2021-11-115分鐘教會你用Docker部署一個Python應(yīng)用
Docker是一個開源項目,為開發(fā)人員和系統(tǒng)管理員提供了一個開放平臺,可以將應(yīng)用程序構(gòu)建、打包為一個輕量級容器,并在任何地方運行,下面這篇文章主要給大家介紹了關(guān)于如何通過5分鐘教會你用Docker部署一個Python應(yīng)用,需要的朋友可以參考下2022-06-06基于python+pandoc實現(xiàn)html批量轉(zhuǎn)word
pandoc是一個強大的文檔格式轉(zhuǎn)換工具,支持豐富的格式轉(zhuǎn)換,并盡可能的保留原來的排版,號稱文檔格式轉(zhuǎn)換的瑞士軍刀,本文將給大家介紹一下使用python搭配pandoc實現(xiàn)html批量轉(zhuǎn)word,感興趣的朋友可以參考閱讀下2023-09-09Python實現(xiàn)控制手機電腦拍照并自動發(fā)送郵箱
這篇文章主要介紹了如何實現(xiàn)利用Python控制手機電腦拍照并自動發(fā)送郵箱,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試一試2022-02-02