Каков самый быстрый способ преобразования чередующегося целочисленного массива NumPy в complex64?

У меня есть поток входящих данных, которые чередуют реальные и мнимые целые числа. Преобразование этих значений в complex64 является самой медленной операцией в моей программе. Это мой нынешний подход:

import numpy as np a = np.zeros(1000000, dtype=np.int16) b = np.complex64(a[::2]) + np.complex64(1j) * np.complex64(a[1::2]) 

Могу ли я сделать лучше, не делая расширение C или используя что-то вроде cython? Если я не могу сделать лучше, какой мой самый простой подход использовать технологию, как один из них?

  • Что означает термин «вещание» в документации Pandas?
  • Передача структурированного массива numpy со строками в функцию cython
  • Python эквивалент функции «ismember» MATLAB
  • Какова внутренняя точность numpy.float128?
  • ImportError при импорте из sklearn: невозможно импортировать имя check_build
  • numpy заменить отрицательные значения в массиве
  • One Solution collect form web for “Каков самый быстрый способ преобразования чередующегося целочисленного массива NumPy в complex64?”

     [~] |1> import numpy as np [~] |2> a = np.zeros(1000000, dtype=np.int16) [~] |3> b = a.astype(np.float32).view(np.complex64) [~] |4> b.shape (500000,) [~] |5> b.dtype dtype('complex64') 
    Python - лучший язык программирования в мире.