You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中生成方形采样网格矩阵并计算对应函数输出值?

解决方案

你需要的是x1、x2取值范围为[-2, 2)的32×32规则网格,对应共1024个采样点,同时生成适配计算y1/y2以及后续神经网络训练的输入输出格式,具体实现如下:

1. 正确生成32×32网格

你之前的第二版代码已经通过endpoint=False避开了包含右边界2的问题,只需把采样点数调整为32即可,这里提供两种常用的网格输出格式:

格式1:二维网格矩阵(适合绘图/逐点矩阵运算)

用numpy.meshgrid生成的X1、X2均为32×32的矩阵,每个位置(i,j)的x1、x2坐标分别对应X1[i,j]、X2[i,j]:

import numpy as np

# 生成x1、x2的采样点,共32个,范围[-2,2)
x1 = np.linspace(-2, 2, 32, endpoint=False)
x2 = np.linspace(-2, 2, 32, endpoint=False)

# 生成32×32网格矩阵
X1, X2 = np.meshgrid(x1, x2)

格式2:样本点矩阵(适合直接输入神经网络训练)

神经网络的输入通常要求为(样本数, 特征数)的二维矩阵,这里样本数为32×32=1024,特征数为2(x1、x2),可以直接从上面的网格矩阵展平得到:

# 展平后拼接为(1024, 2)的输入矩阵
X_train = np.stack([X1.flatten(), X2.flatten()], axis=1)

2. 计算y1、y2的输出矩阵

假设你的y1、y2是任意关于x1、x2的函数,比如示例函数y1 = x1**2 + x2**2、y2 = np.sin(x1) + np.cos(x2),可以直接利用numpy的广播特性批量计算,不需要循环:

输出为二维网格格式(32×32)

# 直接对网格矩阵运算,得到的y1、y2都是32×32的矩阵
y1 = X1**2 + X2**2
y2 = np.sin(X1) + np.cos(X2)

输出为训练集格式(1024, 2)

如果需要和X_train对应的训练标签,直接对结果展平拼接即可:

y_train = np.stack([y1.flatten(), y2.flatten()], axis=1)

得到的X_train和y_train可以直接输入到PyTorch/TensorFlow等框架的神经网络中进行训练。

内容的提问来源于stack exchange,提问作者Woohoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:57:03