【发布时间】:2021-04-17 00:01:27
【问题描述】:
我有一个使用以下代码生成的 3 维网格:
x = np.linspace(-1,1,100)
xx, yy, zz = np.meshgrid(x, x, x)
这会生成一个 100 x 100 x 100 点的 3-d 点网格。我想绘制同一网格的均匀空间子采样,而不必生成新网格。我的方法是使用np.linspace() 从原始数组中获取一个包含 10000 个均匀空间索引的数组,以绘制xx[subsample]、yy[subsample] 和zz[subsample]。我用过
subsample = np.linspace(0,len(xx.flatten())-1,10000,dtype=int)
但是,当我将这个数组传递给我的绘图函数时,我会在 3 维中得到不均匀的结构(对角线):
我猜这是因为我展平了数组,然后使用了np.linspace(),但我不知道如何在 3 维中对网格进行采样并使其均匀分布。如果可能的话,我想避免生成新的网格。
我的问题是我如何均匀地对原始 3 维网格网格进行二次采样,而无需生成新的网格网格?
【问题讨论】:
-
生成新网格有什么问题?
-
我使用这些位置来计算构成附加网格的其他物理量。因此,如果我生成一个新网格,我将不得不为这些物理量生成额外的网格。我认为获取原始网格的索引比生成新网格更容易。
标签: python arrays numpy multidimensional-array