您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關meshgrid函數怎么在numpy中使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
meshgrid(*xi, **kwargs)
功能:從一個坐標向量中返回一個坐標矩陣
參數:
x1,x2...,xn:數組,一維的數組代表網格的坐標。
indexing:{'xy','ij'},笛卡爾坐標'xy'或矩陣'ij'下標作為輸出,默認的是笛卡爾坐標。
sparse:bool類型,如果為True,返回一個稀疏矩陣保存在內存中,默認是False。
copy:bool類型,如果是False,返回一個原始數組的視圖保存在內存中,默認是True。如果,sparse和copy都為False,將有可能返回一個不連續的數組。而且,如果廣播數組的元素超過一個,可以使用一個獨立的內存。如果想要對這個數組進行寫操作,請先拷貝這個數組。
返回值:x1,x2,....,xn:ndarray(numpy數組)
可能看完官方的文檔之后還是一臉懵逼,下面通過幾個例子來解釋說明一下。
nx,ny = (3,2) #從0開始到1結束,返回一個numpy數組,nx代表數組中元素的個數 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.]] '''
通過上面的例子,其實可以發現meshgrid函數將兩個輸入的數組x和y進行擴展,前一個的擴展與后一個有關,后一個的擴展與前一個有關,前一個是豎向擴展,后一個是橫向擴展。因為,y的大小為2,所以x豎向擴展為原來的兩倍,而x的大小為3,所以y橫向擴展為原來的3倍。通過meshgrid函數之后,輸入由原來的數組變成了一個矩陣。通過使用meshgrid函數,可以產生一個表格矩陣,下面用一個例子來展示產生一個2*2網格的坐標,每個網格的大小為1。
nx,ny = (3,3) #從0開始到1結束,返回一個numpy數組,nx代表數組中元素的個數 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函數是將矩陣變為一個一維的數組,其中xv.ravel()就表示x軸的坐標,yv.ravel()就表示了y軸的坐標,我們將x軸的坐標和y軸的坐標進行一一對應,就產生了一個2*2大小為1的網格中的9個點的坐標。
如果,將sparse參數設置為True,就不會向上面一樣進行擴展了,也就是說它產生的網格坐標不是所有的網格坐標,而是網格對角線上的坐標點。
nx,ny = (3,3) #從0開始到1結束,返回一個numpy數組,nx代表數組中元素的個數 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.]] '''
以上就是meshgrid函數怎么在numpy中使用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。