【发布时间】:2014-09-23 10:09:27
【问题描述】:
Tool = [[0 for x in xrange(3)] for y in xrange(len(xTool)-1)]
for l in xrange((len(xTool) - 1)):
Tool[l][0] = yTool[l]; Tool[l][1] = xTool[l]; Tool[l][2] = zTool[l]
我从点坐标开始,它们在 3 个列表(xTool、yTool、zTool)中,分别代表我所有点的 x、y 和 z 坐标。
这里的目的是创建一个包含 3 列和多行(超过 10,000 行)的矩阵,其中每行代表点的 3 个坐标。我要做的下一步是像这样的向量转换:(这并不重要,只有当你真的想了解我在做什么时
rTool = numpy.zeros_like(Tool)
for rt in xrange((len(xTool) - 1)):
rTool[rt][0] = (Tool[rt][0] * cos(angle)) - (Tool[rt][1] * sin(angle))
rTool[rt][1] = (Tool[rt][0] * sin(angle)) + (Tool[rt][1] * cos(angle))
rTool[rt][2] = Tool[rt][2]
最后,我要做的是针对我的第二列 ([1]) 订购我的 rTool。例如,我打印了 5 个 rTool 条目。通过根据第二列对它们进行排序,最后一行应该是第一行。我真的很难做到这一点,我怀疑这是因为我有元组而不是真正的 3 列数学矩阵。
[[ -584.89837646 -3648.6472168 402.177948 ]
[ -542.8659668 -3663.34545898 405.76959229]
[ -500.831604 -3678.04785156 409.32122803]
[ -458.79336548 -3692.75854492 412.7930603 ]
[ -416.74984741 -3637.48022461 416.15090942]]
不要犹豫,要求澄清,我希望你能帮助我!谢谢。
【问题讨论】:
-
5 年前提出的类似问题stackoverflow.com/questions/613183/…
-
您可能希望使用元组作为坐标,因此您将拥有一个三元组列表
[(x, y, z,)(x, y, z)]。元组是不可变的,但速度更快。
标签: python arrays sorting numpy tuples