python - 平行六面体体积数据的体积切片图

标签 python numpy sage

我有一个由三个向量定义的平行六面体体积数据:

2.468000 0.000000 0.000000

b -1.234000 2.137351 0.000000

c 0.000000 0.000000 32.000000

我的网格由 40 40 500 个点描述,分别对应轴 a、b、c。正如您所看到的,这三个向量并不相互正交,这会给网格的读取带来很多问题。

我最初的计划是读取原始数据,然后提取几个体积切片,用 sagemath 进行处理,以生成 super 漂亮的图片。遗憾的是,我在 python 文档中查找了类似的内容,发现了几个可用于正交体积的命令(ndgrid、easyviz.slice_),但没有一个命令可用于非相互正交的体积数据。

在 Scitools 包和 numpy 中我发现了以下命令

Numpy提供:

  • mgrid
  • 奥网格
  • 网格

Scitools提供:

  • ndgrid
  • 盒子网格

然后我也在寻找 matplotlib 函数,但它们太多了,我干脆放弃了。

是否有一些友好的程序员可以帮助我找到正确的方法?

最佳答案

你到底在追求什么?

您可以轻松创建形状为 (40, 40, 500, 3) 的数组,其中位置 [a, b, c] 处的项目是 3 个元素保存相应平行六面体网格点的 x、y、z 坐标的数组,如下所示:

a = np.array([2.468000, 0.000000, 0.000000]).reshape(1, 1, 1, 3)
b = np.array([-1.234000, 2.137351, 0.000000]).reshape(1, 1, 1, 3)
c = np.array([0.000000, 0.000000, 32.000000]).reshape(1, 1, 1, 3)
A = np.linspace(0, 1, num=40).reshape(40, 1, 1, 1)
B = np.linspace(0, 1, num=40).reshape(1, 40, 1, 1)
C = np.linspace(0, 1, num=500).reshape(1, 1, 500, 1)
grid = a * A + b * B + c * C

关于python - 平行六面体体积数据的体积切片图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921629/

相关文章:

python - 有没有办法告诉 gedit .sage 文件应该始终突出显示为 Python 代码?

python - 如何将 pandas 中的一行字符串转换为多列?

python - 在 openpyxl 的优化阅读器中使用 ws.iter_rows 迭代一系列行

python - 如何计算 Scipy 中稀疏矩阵列的方差?

python - numpy 广播和条件

python - 如何从 python/Sage 中的多项式中提取变量

python - 元组列表,第一个元组作为键,按键分组到字典中

python - 石头剪刀布 - 在数学上获得胜利

python - Numpy 矩阵乘以不同的列

r - 我如何从 R 中调用 Sage?