命名属性的更好方法是3D数组中的元素?

时间:2015-11-27 20:53:32

标签: python arrays multidimensional-array naming-conventions readability

我有" 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一样快地运行,但我想知道是否有人有更优雅的解决方案,计算速度快。

谢谢。

1 个答案:

答案 0 :(得分:0)

看起来我的numpy数组中元素位置的设置常量是直观的代码读写的好方法。