TA的每日心情 | 开心 2023-5-15 15:14 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
U8 ~$ L+ G5 G) w5 ?' W3 w ]& M5 ?4 T' J% i; w* z8 q* ?* q3 o
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
5 I+ r, I7 O7 j2 @" W/ b% x B1 n- `) G5 v, ~
用法:/ n) q0 |+ t0 v
2 @- k7 y' @& _: s$ b" w [X,Y]=meshgrid(x,y)* y% @1 s! G, {+ n
% x0 H* O2 z# u0 h: S [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
! V, l5 t/ F$ P: r8 p* O3 c
4 T( h7 j9 l% n$ y2 _- c% T6 g [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图( }* W. p5 k5 g2 Q! v
& Q- E: r/ ^0 q这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。9 c2 _$ Q! H0 X: x5 K# {/ c
7 V9 y; ~- {0 C5 M2 t" y[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。! l M. t9 U' l
1 P" {5 k3 ]' W4 a. E' X+ \
假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。
3 i' V9 H) E/ y' L* ?% t3 d9 `
2 Y5 Y( c: O8 o6 C9 h- \文字描述可能不是太好理解,下面通过代码演示下:9 G' {6 A4 ]6 [
# C% \) {8 D) Q, j/ m# {加载数据
/ F5 o& b# c1 S E" Q S+ l0 B% Y, @8 d9 X7 I% Y }4 O- p" k* z5 _/ i
import numpy as np h, R3 ^; x& f' C
import matplotlib.pyplot as plt( A$ I/ a+ V& O
%matplotlib inline# M: D) x$ B y$ u7 H
m, n = (5, 3)0 L) Q9 g) ^3 @9 ?5 \
x = np.linspace(0, 1, m)
0 ^+ D! N2 }3 H/ j# y$ Ey = np.linspace(0, 1, n)) H% O" [3 k* O5 M
X, Y = np.meshgrid(x,y)2 `" L [+ G8 B
|
|