Укороченная версия
Учитывая встроенный тип данных quaternion, как я могу просмотреть массив кватернионов numpy как массив numpy поплавков с дополнительным измерением размера 4 (без копирования памяти)?
Длинная версия
Numpy имеет встроенную поддержку поплавков и сложных поплавков. Мне нужно использовать кватернионы, которые обобщают комплексные числа, но вместо двух компонентов они есть четыре. Уже есть очень хороший пакет, который использует C API для включения кватернионов непосредственно в numpy, что, похоже, делает все операции идеально быстрые. Есть еще несколько функций кватерниона, которые мне нужно добавить, но я думаю, что в основном справлюсь те.
Однако я также хотел бы иметь возможность использовать эти кватернионы в других функциях, которые мне нужно написать, используя удивительный numba
а> пакет. К сожалению, в настоящее время numba не может работать с пользовательскими типами. Но мне не нужны причудливые функции кватерниона в этих нумерованных функциях; Мне просто нужны сами цифры. Поэтому я хотел бы иметь возможность просто преобразовать массив кватернионов в массив поплавков с одним дополнительным измерением (размером 4). В частности, я хотел бы просто использовать данные, которые уже находятся в массиве, без копирования, и просматривать их как новый массив. Я нашел функцию PyArray_View, но я не знаю, как это реализовать.
(Я почти уверен, что данные хранятся в памяти непрерывно, что, как я полагаю, потребуется для их простого просмотра. В частности, /numpy_quaternion.c#L546-L547" rel="nofollow noreferrer">elsize = 8*4
и alignment = 8
в пакете quaternion.)