【发布时间】:2015-03-27 11:48:39
【问题描述】:
我想在 IronPython 中添加(算术)两个大的 System.Arrays 元素,并将结果存储在第一个数组中,如下所示:
for i in range(0:ArrA.Count) :
arrA.SetValue(i, arrA.GetValue(i) + arrB.GetValue(i));
但是,这似乎很慢。有 C 背景我想使用指针或迭代器。但是,我不知道应该如何快速应用 IronPython 习语。我不能使用 Python 列表,因为我的对象严格来自 System.Array 类型。类型为 3d float。
计算该计算的最快/快速方法是什么?
编辑:
- 元素数量约为。 256^3。
- 3d float 表示可以像这样访问数组:array.GetValue(indexX, indexY, indexZ)。我不确定 IronPython 的 System.Array 中的各个内存是如何组织的。
- 背景:我为 IronPython API 编写了一个接口,它可以访问模拟软件工具中的数据。我检索 3d 标量数据并将其累积到 IronPython 脚本中的时间数组中。累积执行10,000次并且应该很快,以便模拟不会花费时间。
【问题讨论】:
-
您能提供更多上下文吗? 3d浮动?一个结构?实际操作是什么? 3加?有多少个元素是大的?手术多久进行一次?
-
提供了额外的上下文。
标签: iterator ironpython system.array