numpy生成网格方法

本文详细比较了NumPy中`np.meshgrid`和`np.tile`两种创建二维网格的方法,展示了它们在生成矩阵方面的应用,以及各自适用场景。通过实例演示和输出结果,帮助读者理解这两种技术的异同和使用技巧。
摘要由CSDN通过智能技术生成

方法1 np.meshgrid(x, y)

假设 x, y 分别为 m, n 维向量,则矩阵(数组)X, Y 的 dimension 都是: m*n 。其中矩阵 X 中的行都为向量 x,矩阵 Y 的列都为向量 y

import numpy as np
import matplotlib.pyplot as plt

m, n = 5, 4
x = np.linspace(0, m-1, m)
y = np.linspace(0, n-1, n)

# x: array([0., 1., 2., 3., 4.])
# y: array([0., 1., 2., 3.])

X, Y = np.meshgrid(x, y)
print(X)
print(Y)

输出如下

# X
array([[0., 1., 2., 3., 4.],
       [0., 1., 2., 3., 4.],
       [0., 1., 2., 3., 4.],
       [0., 1., 2., 3., 4.]])
# Y
array([[0., 0., 0., 0., 0.],
       [1., 1., 1., 1., 1.],
       [2., 2., 2., 2., 2.],
       [3., 3., 3., 3., 3.]])
X = np.reshape(X,(m * n, 1))
Y = np.reshape(Y, (m * n, 1))
arr = np.concatenate((X, Y), axis=1).reshape((m,n,-1))
print(arr)

输出

shape 5*4*2

方法2 np.tile

m, n = 5, 4
grid_x = np.tile(np.arange(n), (m, 1))
grid_y = np.tile(np.arange(m), (n, 1)).transpose()
# X: array([0., 1., 2., 3., 4.])
# y: array([0., 1., 2., 3.])
print("X")
print(grid_x)
print("Y")
print(grid_y)
grid_x = np.reshape(grid_x , (m * n, 1))
grid_y = np.reshape(grid_y , (m * n, 1))
arr = np.concatenate((grid_x, grid_y ), axis=1).reshape((m, n, -1))
print("arr")
print(arr)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值