Скажем, у меня есть 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)
...
Отлично! И это выглядит еще лучше. У меня было ощущение, что я все усложняю. –
Также, к сожалению, 'tolist()' необходимо в этом случае. Код, который я не контролирую дроссели, если я передаю ему массив numpy. –