Возможно, имеет смысл сделать это:
vector_arr = np.concatenate([vector[np.newaxis, :] for vector in vectors], axis=0)
rotated_vector_arr = np.dot(vector_arr, rotation_matrix)
Тогда строки rotated_vector_arr
- это то, что вы хотите, чтобы они были.Вы можете рассматривать все это как один матричный продукт и выполнять цикл в C / Fortran библиотекой BLAS.
Нет необходимости использовать класс matrix () для умножения матриц, массивы работают нормально.matrix () перегружает оператор *, но я нахожу, что он просто сбивает с толку.