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