numpy中的meshgrid函數(shù)的使用
numpy官方文檔meshgrid函數(shù)幫助文檔https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html
meshgrid(*xi, **kwargs)
功能:從一個坐標(biāo)向量中返回一個坐標(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,返回一個稀疏矩陣保存在內(nèi)存中,默認(rèn)是False。
copy:bool類型,如果是False,返回一個原始數(shù)組的視圖保存在內(nèi)存中,默認(rèn)是True。如果,sparse和copy都為False,將有可能返回一個不連續(xù)的數(shù)組。而且,如果廣播數(shù)組的元素超過一個,可以使用一個獨(dú)立的內(nèi)存。如果想要對這個數(shù)組進(jìn)行寫操作,請先拷貝這個數(shù)組。
返回值:x1,x2,....,xn:ndarray(numpy數(shù)組)
可能看完官方的文檔之后還是一臉懵逼,下面通過幾個例子來解釋說明一下。
nx,ny = (3,2) #從0開始到1結(jié)束,返回一個numpy數(shù)組,nx代表數(shù)組中元素的個數(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ù)將兩個輸入的數(shù)組x和y進(jìn)行擴(kuò)展,前一個的擴(kuò)展與后一個有關(guān),后一個的擴(kuò)展與前一個有關(guān),前一個是豎向擴(kuò)展,后一個是橫向擴(kuò)展。因?yàn)?,y的大小為2,所以x豎向擴(kuò)展為原來的兩倍,而x的大小為3,所以y橫向擴(kuò)展為原來的3倍。通過meshgrid函數(shù)之后,輸入由原來的數(shù)組變成了一個矩陣。通過使用meshgrid函數(shù),可以產(chǎn)生一個表格矩陣,下面用一個例子來展示產(chǎn)生一個2*2網(wǎng)格的坐標(biāo),每個網(wǎng)格的大小為1。
nx,ny = (3,3) #從0開始到1結(jié)束,返回一個numpy數(shù)組,nx代表數(shù)組中元素的個數(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)橐粋€一維的數(shù)組,其中xv.ravel()就表示x軸的坐標(biāo),yv.ravel()就表示了y軸的坐標(biāo),我們將x軸的坐標(biāo)和y軸的坐標(biāo)進(jìn)行一一對應(yīng),就產(chǎn)生了一個2*2大小為1的網(wǎng)格中的9個點(diǎn)的坐標(biāo)。
如果,將sparse參數(shù)設(shè)置為True,就不會向上面一樣進(jìn)行擴(kuò)展了,也就是說它產(chǎn)生的網(wǎng)格坐標(biāo)不是所有的網(wǎng)格坐標(biāo),而是網(wǎng)格對角線上的坐標(biāo)點(diǎn)。
nx,ny = (3,3) #從0開始到1結(jié)束,返回一個numpy數(shù)組,nx代表數(shù)組中元素的個數(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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì)的處理方案
FastAPI 是一個非常現(xiàn)代化和高效的框架,非常適合用于構(gòu)建高性能的 API,FastAPI 是一個用于構(gòu)建 API 的現(xiàn)代、快速(高性能)web 框架,基于 Python 類型提示,這篇文章主要介紹了Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì),需要的朋友可以參考下2024-08-08python實(shí)現(xiàn)七段數(shù)碼管和倒計(jì)時效果
今天小編就為大家分享一篇python實(shí)現(xiàn)七段數(shù)碼管和倒計(jì)時效果,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python openpyxl 遍歷所有sheet 查找特定字符串的方法
今天小編就為大家分享一篇Python openpyxl 遍歷所有sheet 查找特定字符串的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Pytest使用logging模塊寫日志的實(shí)例詳解
logging是python語言中的一個日志模塊,專門用來寫日志的,日志級別通常分為debug、info、warning、error、critical幾個級別,一般情況下,默認(rèn)的日志級別為warning,在調(diào)試或者測試階段,下面就快速體驗(yàn)一下logging模塊寫日志的用法,感興趣的朋友跟隨小編一起看看吧2022-12-12在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法
這篇文章主要介紹了在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10Python中Turtle庫改變畫筆(海龜)方向的兩種方法總結(jié)
turtle庫是python標(biāo)準(zhǔn)庫之一,入門級繪圖庫,import turtle之后即可使用,下面這篇文章主要給大家介紹了關(guān)于Python中Turtle庫改變畫筆(海龜)方向的兩種方法,需要的朋友可以參考下2022-11-11基于Python實(shí)現(xiàn)本地音樂播放器的制作
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)本地音樂播放器的制作,并且可以選擇需要播放的音樂的路徑,選擇播放方式,感興趣的小伙伴可以了解一下2022-06-06Python列表數(shù)據(jù)如何按區(qū)間分組統(tǒng)計(jì)各組個數(shù)
這篇文章主要介紹了Python列表數(shù)據(jù)如何按區(qū)間分組統(tǒng)計(jì)各組個數(shù),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07