np.meshgrid()函数

np.meshgrid()函数

X, Y = np.meshgrid(x, y) 代表的是将x中每一个数据和y中每一个数据组合生成很多点,然后将这些点的x坐标放入到X中,y坐标放入Y中,并且相应位置是对应的。

但np.meshgrid()生成的并不是二维空间中的坐标,还需要把对应位置的两个值合并在一起,才是坐标位置。

例子一说明

我们看下面的代码:

import numpy as np

x = np.linspace(0, 2, 3)
y = np.linspace(0, 1, 2)
X, Y = np.meshgrid(x, y)

coors = np.concatenate((X[:, :, None], Y[:, :, None]), axis=-1)
print(X)
print(Y)
print(X[:, :, None])
print(Y[:, :, None])
print(coors)

输出的结果为:

# X
[[0. 1. 2.]
 [0. 1. 2.]]
 
  # Y
[[0. 0. 0.]
 [1. 1. 1.]]
 
  # X[:, :, None]
[[[0.]
  [1.]
  [2.]]

 [[0.]
  [1.]
  [2.]]]
  
  # Y[:, :, None]
[[[0.]
  [0.]
  [0.]]

 [[1.]
  [1.]
  [1.]]]
  
# coors
[[[0. 0.]
  [1. 0.]
  [2. 0.]]

 [[0. 1.]
  [1. 1.]
  [2. 1.]]]

可以看到,np.meshgrid()生成的值,要再经过一次np.concatenate()才是坐标

例子二说明

再举一个例子,二维坐标系中,X轴可以取三个值1,2,3, Y轴可以取三个值7,8, 请问可以获得多少个点的坐标?显而易见是6个:

(1,7)(2,7)(3,7)
(1,8)(2,8)(3,8)

对应的代码显示:

import numpy as np
a = np.array([1,2,3])
b = np.array([7,8])
# 从坐标向量中返回坐标矩阵
# 返回list,有两个元素,第一个元素是X轴的取值,第二个元素是Y轴的取值
res = np.meshgrid(a,b)
print(res)

输出结果为:

[array([ [1,2,3] [1,2,3] ]), array([ [7,7,7] [8,8,8] ])]

参考

https://blog.csdn.net/littlehaes/article/details/83543459?
https://blog.csdn.net/jiongta9473/article/details/125179947?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream_Bri

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值