Python 3D数组填充来自方程式的值[已关闭]

8dtrkrch  于 2023-05-05  发布在  Python
关注(0)|答案(1)|浏览(139)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
2小时前关闭
Improve this question
我想生成一个python数组,其中填充了来自给定等式的值。例如,我有x = 20,y = 30和z = 4的值和方程v = 7x + 20y - 3z
我想计算每个可能的点(例如v0 = 7
0+200-30,v1=71+200-3+z,v2=72+200-3*0,...),以便对于“立方体”中的每个可能的点,我都有计算值(根据坐标)
我真的希望这是有意义的...
我想这比听起来容易,我的头脑只是想得太复杂了
我确实尝试了不同的循环和函数,如meshgrid,np.indices,但它不起作用,要么总是有错误或数字,没有任何意义...

wwtsj6pe

wwtsj6pe1#

处理任何方程或表达式求值的最佳方法是使用sympy模块,您可以定义符号(代数变量)并替换值来计算它们。
根据我对你的问题的理解,你只需要一个数组中V的值,为此,我们可以使用一个简单的列表,并使用列表解析或简单的for循环追加来替换V的值。
你可以通过使用字典或元组或列表来半硬编码需要在V中替换的值,如下所示,我已经考虑了立方体定义,但你也可以考虑立方体。
如果你想把列表转换成一个numpy数组
这是我代码

from sympy import symbols as sym
#defining symbols and expressions
x=sym('x')
y=sym('y')
z=sym('z')
v=7*x+20*y-3*z

#defining points of cuboid
cubePoints=[]
for i in range(0,5):
 l,w,t=i,i,i
 cubePoints.append({x:0,y:0,z:0},
         {x:0,y:0,z:t},
         {x:0,y:w,z:t},
         {x:0,y:w,z:0},
         {x:l,y:0,z:0},
         {x:l,y:0,z:t},
         {x:l,y:w,z:t},
         {x:l,y:w,z:0})

#evaluating the expression values
array=[v.subs(values) for values in cubePoints]
print(array)

相关问题