评估立方体面上的3d功能的优雅方式

时间:2018-01-04 08:07:34

标签: python numpy 3d

我正在尝试在3d立方体的六个面上(都使用相同的网格)评估三维函数F(x,y,z),并且正在寻找一种优雅的pythonic方法。评估的顺序并不重要。目前,我正在使用集合来旋转列表,其中包含两个网格和一个表示面的常量。但我不知何故觉得必须有更清洁(也许更快?)的方式。

我目前这样做的一个例子:

import collections
import numpy as np

def somefunc(x,y,z):
    return np.cos(x*y) + z

X,Y = np.mgrid[-1:1:100j, -1:1:100j]
d1 = collections.deque([X,Y,1])
d2 = collections.deque([X,Y,-1])

for i in range(0,3):
    somefunc(*d1)
    somefunc(*d2)
    d1.rotate(1), d2.rotate(1)

我会找到最方便的方法来构建一个网格或类似于立方体表面的一块,所以我只需要调用一次该函数。但是,我找不到那样的东西。任何建议表示赞赏!

0 个答案:

没有答案