numpy中的meshgrid函數(shù)的使用
numpy官方文檔meshgrid函數(shù)幫助文檔https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html
meshgrid(*xi, **kwargs)
功能:從一個(gè)坐標(biāo)向量中返回一個(gè)坐標(biāo)矩陣
參數(shù):
x1,x2...,xn:數(shù)組,一維的數(shù)組代表網(wǎng)格的坐標(biāo)。
indexing:{'xy','ij'},笛卡爾坐標(biāo)'xy'或矩陣'ij'下標(biāo)作為輸出,默認(rèn)的是笛卡爾坐標(biāo)。
sparse:bool類型,如果為True,返回一個(gè)稀疏矩陣保存在內(nèi)存中,默認(rèn)是False。
copy:bool類型,如果是False,返回一個(gè)原始數(shù)組的視圖保存在內(nèi)存中,默認(rèn)是True。如果,sparse和copy都為False,將有可能返回一個(gè)不連續(xù)的數(shù)組。而且,如果廣播數(shù)組的元素超過一個(gè),可以使用一個(gè)獨(dú)立的內(nèi)存。如果想要對(duì)這個(gè)數(shù)組進(jìn)行寫操作,請(qǐng)先拷貝這個(gè)數(shù)組。
返回值:x1,x2,....,xn:ndarray(numpy數(shù)組)
可能看完官方的文檔之后還是一臉懵逼,下面通過幾個(gè)例子來解釋說明一下。
nx,ny = (3,2) #從0開始到1結(jié)束,返回一個(gè)numpy數(shù)組,nx代表數(shù)組中元素的個(gè)數(shù) x = np.linspace(0,1,nx) #[ 0. 0.5 1. ] y = np.linspace(0,1,ny) # [0. 1.] xv,yv = np.meshgrid(x,y) ''' xv [[ 0. 0.5 1. ] [ 0. 0.5 1. ]] yv [[ 0. 0. 0.] [ 1. 1. 1.]] '''
通過上面的例子,其實(shí)可以發(fā)現(xiàn)meshgrid函數(shù)將兩個(gè)輸入的數(shù)組x和y進(jìn)行擴(kuò)展,前一個(gè)的擴(kuò)展與后一個(gè)有關(guān),后一個(gè)的擴(kuò)展與前一個(gè)有關(guān),前一個(gè)是豎向擴(kuò)展,后一個(gè)是橫向擴(kuò)展。因?yàn)?,y的大小為2,所以x豎向擴(kuò)展為原來的兩倍,而x的大小為3,所以y橫向擴(kuò)展為原來的3倍。通過meshgrid函數(shù)之后,輸入由原來的數(shù)組變成了一個(gè)矩陣。通過使用meshgrid函數(shù),可以產(chǎn)生一個(gè)表格矩陣,下面用一個(gè)例子來展示產(chǎn)生一個(gè)2*2網(wǎng)格的坐標(biāo),每個(gè)網(wǎng)格的大小為1。
nx,ny = (3,3) #從0開始到1結(jié)束,返回一個(gè)numpy數(shù)組,nx代表數(shù)組中元素的個(gè)數(shù) x = np.linspace(0,2,nx) # [0. 1. 2.] y = np.linspace(0,2,ny) # [0. 1. 2.] xv,yv = np.meshgrid(x,y) print(xv.ravel()) #[ 0. 1. 2. 0. 1. 2. 0. 1. 2.] print(yv.ravel()) #[ 0. 0. 0. 1. 1. 1. 2. 2. 2.]
ravel函數(shù)是將矩陣變?yōu)橐粋€(gè)一維的數(shù)組,其中xv.ravel()就表示x軸的坐標(biāo),yv.ravel()就表示了y軸的坐標(biāo),我們將x軸的坐標(biāo)和y軸的坐標(biāo)進(jìn)行一一對(duì)應(yīng),就產(chǎn)生了一個(gè)2*2大小為1的網(wǎng)格中的9個(gè)點(diǎn)的坐標(biāo)。
如果,將sparse參數(shù)設(shè)置為True,就不會(huì)向上面一樣進(jìn)行擴(kuò)展了,也就是說它產(chǎn)生的網(wǎng)格坐標(biāo)不是所有的網(wǎng)格坐標(biāo),而是網(wǎng)格對(duì)角線上的坐標(biāo)點(diǎn)。
nx,ny = (3,3) #從0開始到1結(jié)束,返回一個(gè)numpy數(shù)組,nx代表數(shù)組中元素的個(gè)數(shù) x = np.linspace(0,2,nx) # [0. 1. 2.] y = np.linspace(0,2,ny) # [0. 1. 2.] xv,yv = np.meshgrid(x,y,sparse=True) print(xv) #[[ 0. 1. 2.]] print(yv) ''' [[ 0.] [ 1.] [ 2.]] '''
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python的Flask框架路由實(shí)現(xiàn)詳解
這篇文章主要介紹了Python的Flask框架路由實(shí)現(xiàn)詳解,在啟動(dòng)程序時(shí),python解釋器會(huì)從上到下對(duì)代碼進(jìn)行解釋,當(dāng)遇到裝飾器時(shí),會(huì)執(zhí)行,并把函數(shù)對(duì)應(yīng)的路由以字典的形式進(jìn)行存儲(chǔ),當(dāng)請(qǐng)求到來時(shí),即可根據(jù)路由查找對(duì)應(yīng)要執(zhí)行的函數(shù)方法,需要的朋友可以參考下2023-08-08
python讀取圖片的方式,以及將圖片以三維數(shù)組的形式輸出方法
今天小編就為大家分享一篇python讀取圖片的方式,以及將圖片以三維數(shù)組的形式輸出方法,具有好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Django2.1.7 查詢數(shù)據(jù)返回json格式的實(shí)現(xiàn)
這篇文章主要介紹了Django2.1.7 查詢數(shù)據(jù)返回json格式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
kafka-python批量發(fā)送數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇kafka-python批量發(fā)送數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
詳解用 python-docx 創(chuàng)建浮動(dòng)圖片
這篇文章主要介紹了詳解用 python-docx 創(chuàng)建浮動(dòng)圖片,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

