欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

numpy中的meshgrid函數(shù)的使用

 更新時間:2019年07月31日 14:59:11   作者:修煉之路  
這篇文章主要介紹了numpy中的meshgrid函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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)文章

最新評論