numpy - meshgrid()函数

numpy - meshgrid()函数 首页 / Numpy入门教程 / numpy - meshgrid()函数

Python的numpy模块提供 meshgrid()函数,该函数借助表示矩阵索引笛卡尔索引的给定一维数组创建矩形网格。 。 MATLAB有点启发了meshgrid()函数。从坐标矢量,meshgrid()函数返回坐标矩阵。

numpy.meshgrid()

在上图中,x轴的范围是-5到5,y轴的范围是-5到5。因此,图中总共标记了121个点,每个点都有x坐标和y坐标。对于平行于x轴的任何直线,标记点的x坐标分别为-5,-4,-3,-2,-1、0、1、2、3、4和5。另一方面,对于平行于y轴的任何线,从下到上的标记点的y坐标为-5,-4,-3,-2,-1、0、1、2、3 ,4和5。

语法

numpy.meshgrid(*xi, **kwargs)

参数

x1,x2,…,xn:array_like

此参数定义一维数组,该数组代表网格的坐标。

indexing:{'xy','ij'}(可选)

这是一个可选参数,用于定义输出的笛卡尔" xy"(默认)或矩阵(" in")索引。

sparse:bool(可选)

此参数也是可选的。如果需要稀疏的网格来节省内存,则必须将此参数设置为True。默认情况下,它设置为False。

copy:bool(可选)

此可选参数的目的是返回原始数组的副本以节省内存。默认情况下,它设置为False。

如果 sparse copy 参数都设置为False,则它将返回非连续数组。此外,广播阵列中的多个元素可以引用一个存储位置。如果我们需要写入数组,那么我们必须先制作副本。

返回值

X1,X2,...,Xn

从该函数返回坐标向量的坐标长度。

范例1:

import numpy as np
na, nb = (5, 3)
a = np.linspace(1, 2, na)
b = np.linspace(1, 2, nb)
xa, xb = np.meshgrid(a, b)
xa
xb

输出:

array([[1.  , 1.25, 1.5 , 1.75, 2.  ],
       	[1.  , 1.25, 1.5 , 1.75, 2.  ],
       	[1.  , 1.25, 1.5 , 1.75, 2.  ]])
array([[1. , 1. , 1. , 1. , 1. ],
       	[1.5, 1.5, 1.5, 1.5, 1.5],
       	[2. , 2. , 2. , 2. , 2. ]])

在上面的代码中

  • 我们导入了别名为np的numpy。
  • 我们已经创建了两个变量na和nb,并分别为其指定了值5和3。
  • 我们使用linspace()函数创建了两个数组,即a和b。
  • 之后,我们声明了变量'xa'和'xb'并分配了返回值 meshgrid()
  • 我们已经在函数中传递了数组'a'和'b'
  • 最后,我们尝试打印'xa''xb'的值。

在输出中,显示了两个数组,其中包含来自坐标向量的坐标长度。

范例2:

import numpy as np
na, nb = (5, 3)
a = np.linspace(1, 2, na)
b = np.linspace(1, 2, nb)
xa, xb = np.meshgrid(a, b, sparse=True)
xa
xb

输出:

array([[1.  , 1.25, 1.5 , 1.75, 2.  ]])
array([[1. ],
       	[1.5],
       	[2. ]])

范例3:

import numpy as np
import matplotlib.pyplot as plt
a = np.arange(-10, 10, 0.1)
b = np.arange(-10, 10, 0.1)
xa, xb = np.meshgrid(a, b, sparse=True)
z = np.sin(xa**2 + xb**2)/(xa**2 + xb**2)
h = plt.contourf(a,b,z)
plt.show()

输出:

numpy.meshgrid()

在上面的代码中

  • 我们导入了别名为np的numpy。
  • 我们已将matplotlib.pyplot导入为plt。
  • 我们使用np.arange()函数创建了两个数组,即a和b。
  • 之后,我们声明了变量'xa'和'xb'并分配了返回值 meshgrid()
  • 我们在函数中同时传递了数组'a'和'b'。
  • 在那之后,我们声明了一个变量z并分配了np.sine()函数的返回值。
  • 最后,我们尝试使用 plt.contourf()绘制轮廓线和填充轮廓

在输出中,绘制了轮廓线。

范例4:

import numpy as np
import matplotlib.pyplot as plt
a = np.linspace(-5, 5, 5)
b = np.linspace(-5, 5, 11)
random_data = np.random.random((11, 5))
xa, xb = np.meshgrid(a, b)
plt.contourf(xa, xb, random_data, cmap = 'jet')
plt.colorbar()
plt.show()

输出:

numpy.meshgrid()

范例5:

import numpy as np
import matplotlib.pyplot as plt
a = np.linspace(-5, 5, 5)
b = np.linspace(-5, 5, 11)
random_data = np.random.random((11, 5))
xa, xb = np.meshgrid(a, b)
sine = (np.sin(xa**2 + xb**2))/(xa**2 + xb**2)
plt.contourf(xa, xb, sine, cmap = 'jet')
plt.colorbar()
plt.show()

输出:

numpy.meshgrid()

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

程序员进阶攻略 -〔胡峰〕

数据分析实战45讲 -〔陈旸〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

Java业务开发常见错误100例 -〔朱晔〕

基于人因的用户体验设计课 -〔刘石〕

Spark性能调优实战 -〔吴磊〕

陶辉的网络协议集训班02期 -〔陶辉〕

云计算的必修小课 -〔吕蕴偲〕

结构执行力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)