說我有一個numpy的矩陣,像這樣:從numpy的矩陣列的最佳提取
[[ x1, x2, x3, ... ],
[ y1, y2, y3, ... ],
[ z1, z2, z3, ... ],
[ 1, 1, 1, ... ]]
從中我想提取一個列表的列表,像這樣:
[[x1, y1, z1], [x2, y2, z2], [x3, y3, z3], ... ]
什麼是最這樣做的最佳方式?
目前我有:
tpoints = [pt[:3].tolist() for pt in numpy.asarray(tptmat.T)]
並調用tolist()
被佔用的時間不成比例,花中最耗時的我的程序的功能的時間大約三分之一。
ncalls tottime percall cumtime percall filename:lineno(function)
14422540 69.777 0.000 69.777 0.000 {method 'tolist' of 'numpy.ndarray' objects}
20 64.258 3.213 178.057 8.903 trans.py:152(_apply)
...
完美!它看起來更好。我有一種感覺,我過於複雜的事情。 – 2010-07-23 08:35:32
另外,不幸的是'tolist()'在這種情況下是必要的。如果我傳遞一個numpy數組,我無法控制扼流圈的代碼。 – 2010-07-24 12:23:41