#python #arrays #numpy
#python #массивы #numpy
Вопрос:
Допустим, у меня есть 3-мерный массив numpy a
, например, как показано ниже:
import numpy as np
a = np.random.randn(3, 3, 3)
Как я могу применить функцию типа (matrix-> scalar) к a
? Более конкретно, я хочу сделать аналогичную вещь, как показано ниже, более эффективным с точки зрения вычислений способом:
[np.linalg.det(e) for e in a]
Комментарии:
Ответ №1:
np.linalg.det(a)
кажется, работает просто отлично и имеет значительно лучшее время выполнения:
a = np.random.rand(100,3,3)
%timeit -n 100 [np.linalg.det(e) for e in a]
626 µs ± 26.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit -n 100 np.linalg.det(a)
33.9 µs ± 7.08 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)