python不提供对多维数组的内置支持。我需要开发一个11维数组和一组函数来操作它(主要是线性代数、向量算法)。但是,不允许外部库导入。我有一个C语言的代码并试图将其移植到Python:

typedef vec3_t float[3];
vec3_t Array[dim0][dim1][dim2][dim3][dim4][dim5][dim6][dim7][dim8][dim9][dim10];
Array[0][0][0][0][0][0][0][0][0][0][1] = {1.0, 0.0, 0.0};

如何在python中有效地实现它(具有良好的可读性)?
PS:对于Python2.5版本最多。

最佳答案

有这么多维度,而且不允许库导入,我将(作为基本选择)使用一个由元组索引的字典。这样,就可以得到非常好的语法来进行简单的索引:

Array = dict()
Array[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] = [1.0, 0.0, 0.0]

您可能希望将它封装在类中,以便在简单索引之外添加功能,但不知道您想要的是什么(初始化/缺省值)?切片?迭代?等等,等等……),真是太难猜了。如果你能精确地指定你想用“多维数组”做的所有事情,那么向你展示最能提供它的代码就不难了!

08-27 22:22
查看更多