python - 如何创建覆盖整个样本区域的 xy 网格,在 python 中具有特定数量的节点?
问题描述
我正在查看 2D 空间数据 (x,y,(z)),其中 z 是 x,y 的属性,而不是另一个空间维度。我想要在我的应用程序中做的是让用户切换“x 节点数”滑块。该程序查看他们加载的样本数据,并使用其数据的纵横比,选择 y 节点的数量以在其样本上创建 1:1 纵横网格。
这部分工作正常。但知道我需要创建实际的网格数据。我使用 itertools 执行此操作,并获取两个数组的所有组合。一个用于 x,一个用于 y。
xnodes=#number of x from user choice
dx=(max(x)-min(x))/xnodes
grid_xy = np.array(list(itertools.product(
np.arange(min(x),max(x),step=dx),
np.arange(min(y),max(y),step=dx))))
请注意,我在两个数组中都使用了 dx,因为我希望网格纵横比为 1:1。总节点的数量只是给用户,以便他们知道是否需要很长时间来计算。我得到的是这样的情况。
网格节点不会覆盖整个区域(随着 x 节点的数量越来越大,它最终会变得非常接近)。此外, np.arange 中固有的舍入意味着有时它会超出样本数据,这是我想要的,bt 有时会低于。如何确保使用我的网格捕获所有示例数据,同时仅使用为用户指定的节点数?我可以看到的一个解决方案是在每个网格列的末尾添加另一行节点。
解决方案
答案是
self.grid_xy = np.array(list(itertools.product(
np.linspace(self.min_gx,self.max_gx,num=self.s1.get()),
np.linspace(self.min_gy,self.max_gy,num=self.s2.get()))))
或者,没有类结构
self.grid_xy = np.array(list(itertools.product(
np.linspace(min(x),(max(x),num=x_nodes),
np.linspace(min(y),(max(y),num=y_nodes))))
推荐阅读
- ios - 从文档目录 EasyAR 加载图像
- matlab - 在matlab中制作等高线图
- c++ - QTableWidget 省略了一些项目,项目被创建但被忽略
- wordpress - 联系表格 7 占位符中的 Sup 数字?
- parsing - 解析 maxscript - 换行问题
- java - 按钮可绘制在某些设备上导致 Resources$NotFoundException
- arduino - arduino mega上的led代码内置led发光
- ipfs - IPFS 的保密性?
- pine-script - 这个简单的海龟策略没有位置条目
- reactjs - 未处理的拒绝 (ChunkLoadError):加载块 1 失败