10

実数と虚数の整数がインターリーブされた受信データのストリームがあります。これらを 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 のようなものを使用したりせずに、もっとうまくやることはできますか? 改善できない場合、これらのようなテクノロジを使用する最も簡単なアプローチは何ですか?

4

1 に答える 1

20
[~]
|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')
于 2011-04-14T04:14:07.847 に答える