我有" Ball" s,有一些属性,如" x"," y"和" z",它循环了许多"步骤"。
我正在进行大量的数学运算,因此,为了使我的代码更容易阅读和编写,我已经将数组元素的位置命名为它们的实际位置:
x = 0
y = 1
z = 2
有了这个,我可以这样写:
for Step in xrange(steps):
for Ball in xrange(balls)
ball[Ball,**z**,Step] + ball[Ball,**velocity_z**,Step]*dt
与记住每个财产的位置相反:
for Step in xrange(steps):
for Ball in xrange(balls)
ball[Ball,**2**,Step] + ball[Ball,**2**,Step]*dt
这是我目前的属性列表:
x = 0
y = 1
z = 2
vel_x = 3
vel_y = 4
vel_z = 5
acc_x = 6
acc_y = 7
acc_z = 8
mass = 9
radius = 10
w_x = 11
w_y = 12
w_z = 13
mag_w = 14
mag_vel = 15
mag_acc = 16
velh_x = 17
velh_y = 18
velh_z = 19
然后确定我的数组的第二个维度为20。我喜欢这使得代码易于阅读和编写,我当然不想使用字典或任何非常低效的代码,如我的程序需要像python一样快地运行,但我想知道是否有人有更优雅的解决方案,计算速度快。
谢谢。
答案 0 :(得分:0)
看起来我的numpy数组中元素位置的设置常量是直观的代码读写的好方法。