日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中grid函数_Python-Numpy模块Meshgrid函数

發布時間:2024/2/28 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中grid函数_Python-Numpy模块Meshgrid函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Numpy中關于Meshgrid函數:meshgrid官方。

1.Meshgrid前言

meshgrid函數就是用兩個坐標軸上的點在平面上畫網格(當然這里傳入的參數是兩個的時候)。當然我們可以指定多個參數,比如三個參數,那么我們的就可以用三個一維的坐標軸上的點在三維平面上畫網格。

2.Meshgrid的參數numpy.meshgrid(* xi,** kwargs ) 。array_like代表網格坐標的一維數組,這里可以傳入多個一維數組的值。但是這里需要注意的就是如果我們給傳入的是一個矩陣(多維數組)的話,他會自動把這個矩陣轉換成一維數組;

索引(indexing):('xy'[笛卡爾],'ij'[矩陣]),可選。默認是'xy',下面會詳細解釋一下;

稀疏(sparse):bool,可選。默認為False。如果為True為了節省內存會返回一個稀疏矩陣;

復制(copy):bool,可選。默認為True。如果為False則為了節省內存返回源始的視圖。

返回值: :ndarray。對于二維數組來說,我們的參數是

兩個一維數組,我們設

形狀為N,

的形狀為M。那么他的返回值是一個list列表,里面存放著兩個矩陣,我們可以通過解包操作來獲取

兩個矩陣,這里的返回值

。我們指定了indexing參數,如果indexing = 'xy'(默認)我們返回的

矩陣的形狀是(M,N);如果indexing = 'ij'的話我們返回的

矩陣的形狀就是(N,M)。

3.indexing參數

上面介紹了indexing參數有兩個值'xy'和'ij',默認值為'xy'。那他們兩個之間有什么區別呢?其中'xy'代表的是笛卡爾,'ij'代表的是矩陣。我們直接通過結果來看。

import numpy as np

x = np.array([1,2,3])

y = np.array([4,5,6,7])

xv,yv = np.meshgrid(x,y,indexing = 'xy')

xv2,yv2 = np.meshgrid(x,y,indexing = 'ij')

print('-----向量的形狀-----')

print(x.shape)

print(y.shape)

print('-----xy-----')

print(xv.shape)

print(yv.shape)

print('-----ij-----')

print(xv2.shape)

print(yv2.shape)

-----向量的形狀-----

(3,)

(4,)

-----xy-----

(4, 3)

(4, 3)

-----ij-----

(3, 4)

(3, 4)

從上面我們可以看出,對于二維數組來說,對于兩個長度為3和4的一維數組,我們設N = 3 ,M = 4。對于我們indexing = 'xy'(默認)來說,得到xv以及yv矩陣的形狀是(M,N)也就是(4,3);那對于indexing = 'ij'我們的xv以及yv矩陣的形狀是(N,M)也就是(3,4)。

那對于三維來說,參數是三個一維數組,并且一維數組的形狀分別是N,M,P,那么如果indexing = 'xy'的話返回的三個矩陣xv,yv,zv的形狀都是(M,N,P);如果indexing = 'ij'的話返回的是三個矩陣xv,yv,zv的形狀都是(N,M,P)

import numpy as np

x = np.array([1,2,3])

y = np.array([4,5,6,7])

xv, yv = np.meshgrid(x, y, sparse=False, indexing='ij')

for i in zip(xv.flat,yv.flat):

print(i)

print('----------')

xv, yv = np.meshgrid(x, y, sparse=False, indexing='xy')

for i in zip(xv.flat,yv.flat):

print(i)運行結果

4.如何使用xv,yv = meshgrid(x,y)

xv,yv = meshgrid(x)與xv,yv = meshgrid(x,x)是等同的

xv,yv,zv = meshgrid(x,y,z)生成三維數組,可用來計算三變量的函數和繪制三維立體圖

上面的這些都是直接進行解包后的返回值。其實他返回的是一個list列表,列表中存放的xv,yv,zv的這些numpy數組。

import numpy as np

x = np.array([1,2,3]) #X_{x} = 3

y = np.array([4,5,6,7]) #X_{y} = 4

xv,yv = np.meshgrid( x , y )

print(xv)

print(yv)

[[1 2 3]

[1 2 3]

[1 2 3]

[1 2 3]]

[[4 4 4]

[5 5 5]

[6 6 6]

[7 7 7]]

我們通過對兩個參數來一步一步的分析來看,看得到的結果是如何變成一個網格的:x:表示我們的一維向量(1,2,3),他的N = 3

y:表示我們的一維向量(4,5,6,7),他的N = 4

xv:表示x坐標軸上的坐標矩陣

yv:表示y坐標軸上的坐標矩陣

x = np.array([1,2,3]) #x = (x1,x2,x3)

y = np.array([4,5,6,7]) #y = (y1,y2,y3,y4)

xv,yv = np.meshgrid( x , y )xv矩陣

我們把我們的一維向量

看成了

,我們也可以看上面我輸出的xv[[1 2 3]

[1 2 3] [1 2 3] [1 2 3]],如果看成是

,也就是4個向量,如圖所示。yv矩陣

我們把我們的y向量看成了

,然后我們從上面的打印出來的結果[[4 4 4] [5 5 5][6 6 6] [7 7 7]],我們的向量被豎著放起,然后推廣成三列。正如我們的yv矩陣所示。

我們的兩個一維數組形成的網格,我們就可以通過上面的分析得到:網格化數據左邊與其對應值

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的python中grid函数_Python-Numpy模块Meshgrid函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。