一分钟看懂 numpy.meshgrid()
meshgrid是作图生成网格时经常使用的函数。
基本作用:将传入的两个numpy数组中的每个元素分别配对,并按照传入的顺序返回两个numpy数组。
传入:两个numpy数组无具体要求,常用取点方式为np.arange(),假设分别为 X,Y
返回:返回的两个numpy分别是网格中所有点的x,y坐标,设为XX, YY,两者shape一致,XX.shape = YY.shape = [Y.shape, X.shape]
—————————————————————————————————
代码如下:
—————————————————————————————————
取numpy数组X, Y:
import numpy as np
import matplotlib.pyplot as plt
#此处X, Y取不同值加以区分
X = np.arange(-7, 5, 1)
Y = np.arange(-5, 5, 1)
主角登场:
XX, YY = np.meshgrid(X, Y)
print(XX,'\n',XX.shape, '\n\n',YY,'\n', YY.shape)
结果打印:
[[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]
[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4]]
(10, 12)
[[-5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5]
[-4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4]
[-3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3]
[-2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2]
[-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
[ 0 0 0 0 0 0 0 0 0 0 0 0]
[ 1 1 1 1 1 1 1 1 1 1 1 1]
[ 2 2 2 2 2 2 2 2 2 2 2 2]
[ 3 3 3 3 3 3 3 3 3 3 3 3]
[ 4 4 4 4 4 4 4 4 4 4 4 4]]
(10, 12)
可以看到,返回的XX,YY按照一般二维坐标系的方式进行排列即
横向为x增长
纵向为y增长
XX,YY相同索引处的元素组组合为一点(XX[i][j],YY[i][j])
效果图:
你学废了吗?