当前位置:  开发笔记 > 编程语言 > 正文

Python - 多维数组

如何解决《Python-多维数组》经验,为你挑选了1个好方法。

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:最多为Python 2.5版本.



1> Alex Martell..:

有这么多维度,并且不允许库导入,我会(作为基本选择)用于由元组索引的字典.这样,您可以获得简单索引的非常好的语法:

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

您可能希望将它包装在一个类中以添加除简单索引之外的功能,但是,不知道除了那之外你想要的什么(初始化/默认?切片?迭代?等等......),它也是很难猜到.如果你可以准确地指定你想用"多维数组"做的所有事情,那么向你展示最能提供它的代码应该不难!


@psihodelia:在这种情况下,您的选项仅限于使用numpy(外部库),在互联网上查找库或自行编码.
我不确定"后来不同"的矩阵乘法与正常矩阵乘法有什么不同(甚至不确切地说如何在11维阵列上定义矩阵乘法,说实话! - ),也不确定你需要什么样的"矢量算术"在11维数组上执行.如果您可以使用C语言(或伪代码)进行编码,那么您可以使用Python编写代码,当然也可以更简洁地编写代码......但是,它仍然是**大量编码,只是为了避免导入任何现有模块.为什么,你究竟不能导入像pyarray这样的纯python库并省去一些工作? - )
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有