我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

最近要更新的python文章都是和画图有关系的,画图的时候都有些坐标点,这些坐标点除了手工定义外,还可以通过np.meshgrid()来批量生成。这就是本文的主要内容:np.meshgrid()函数的使用问题。它可以生成一系列可以组成网格的坐标点。

苏南大叔:python教程,如何理解numpy里meshgrid网格生成函数? - meshgrid网格坐标
python教程,如何理解numpy里meshgrid网格生成函数?(图3-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码经验总结。本文测试环境:win10python@3.11.0numpy@1.24.2matplotlib@3.7.1

坐标值

水平面上的坐标都是由x,y两个坐标组成的,所以本段代码准备这两个坐标轴。坐标点的生成,是根据需求来生成的。所以,不要盲目的抄袭本段内容,请根据实际需求更改代码。

import numpy as np 
x = np.arange(0,12,3)      # [0 3 6 9]
y = np.linspace(0,12,3)    # [0 6 12]

返回值:

[0 3 6 9]

[ 0.  6. 12.]

本文内容使用下面的文章的等差数列的生成方案:

网格坐标【本文主体】

坐标点并非单独的几个点(网格边缘的几个点),而是相互交织的网格坐标,这里使用np.meshgrid()来生成网格坐标。

xx, yy = np.meshgrid(x, y)

返回:

[[0 3 6 9]
 [0 3 6 9]
 [0 3 6 9]]

[[ 0.  0.  0.  0.]
 [ 6.  6.  6.  6.]
 [12. 12. 12. 12.]]

可以看到:

  • 从x到xx,是把x{全体数据}在竖直方向上复制{y的行数}次。
  • 从y到yy,是把y先变成竖排,然后{单个值}在x的方向上复制{x的列数}次。

直观感受散点分布

下面使用plot生成散点图的方式,来直观的画出这些点,并不是主体内容。仅仅是个直观感受的内容。代码如下:

import matplotlib.pyplot as plt
plt.scatter(xx, yy, color="r", marker="*")
plt.show()

苏南大叔:python教程,如何理解numpy里meshgrid网格生成函数? - meshgrid图一
python教程,如何理解numpy里meshgrid网格生成函数?(图3-2)

参考文章:

如果交换xxyy,可以得到另外一个散点分布图,以加强对比感知。

import matplotlib.pyplot as plt
plt.scatter(yy, xx, color="b", marker="*")
plt.show()

苏南大叔:python教程,如何理解numpy里meshgrid网格生成函数? - meshgrid图二
python教程,如何理解numpy里meshgrid网格生成函数?(图3-3)

值得说明的是:网格图上显示出来的横纵坐标文字值,虽然依据是xxyy。但是,并不是完全按照其分布的。

对比zip(x,y)

zip()缝合函数也是有一定的区别的,对比一下:

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 12, 3)
y = np.linspace(0, 12, 3)
xx, yy = np.meshgrid(x, y)

print(len(xx),len(yy),len(list(zip(x,y))))  # 3 3 3

print(xx)
print(yy)
print(list(zip(x,y)))

""" 
[[0 3 6 9]
 [0 3 6 9]
 [0 3 6 9]]

[[ 0.  0.  0.  0.]
 [ 6.  6.  6.  6.]
 [12. 12. 12. 12.]]

[(0, 0.0), (3, 6.0), (6, 12.0)] 
"""

很显然,meshgrid()得到的是网格12个点,zip()得到的是其中的斜线上的三个点。

结束语

苏南大叔的文章可以转载,但是请保留“苏南大叔”的基本人设,请保留文章链接。谢谢。更多python文章请参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python