【发布时间】:2011-03-13 00:12:37
【问题描述】:
我有以下数组:
>>> x = numpy.array([2,4,2,3,1])
>>> x
array([2, 4, 2, 3, 1])
我想要一个包含这些值范围的数组。我可以这样创建它:
>>> numpy.hstack( (numpy.arange(v) for v in x) )
array([0, 1, 0, 1, 2, 3, 0, 1, 0, 1, 2, 0])
鉴于x,有没有一种更快的方法来使用 numpy 生成它而无需使用 for 循环?
【问题讨论】:
-
看起来您找到了解决方案...知道您为什么需要它以及为什么采用这种特定格式会很有趣。
-
我正在努力加速 pycollada 库 (github.com/pycollada/pycollada)。 collada 格式的几何类型之一称为 polylist,它将每个多边形的顶点数存储在一个数组中,如上面的
x。我需要设置输出范围以在单个数组中快速对多边形进行三角剖分。 -
你可以在我在这个提交中创建的 triangleset() 函数中看到它是如何工作的:github.com/pycollada/pycollada/commit/…
标签: python optimization numpy