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 回答