我有两个实数数组(a
和b
),我想创建一个复杂的数组(c),该数组将两个实数数组分别作为其实部和虚部。
最简单的是
c = a + b * 1.0j
但是,由于我的数据量很大,所以这样的代码效率不是很高。
我们还可以执行以下操作,
c = np.empty(data_shape)
c.real = a
c.imag = b
我想知道是否有更好的方法(例如使用buffer
或其他方法?]
非常感谢!
由于实部和虚部必须是连续的,所以无论如何都必须为数据分配另一个缓冲区。因此,问题中显示的第二种方法与您可能获得的效率差不多。一种选择是
np.stack((a, b), axis=1).view(np.complex).ravel()
这适用于一维数组。更大的尺寸会稍微复杂一些,因为您必须预先汇总输入,然后重新调整它们的形状,或者排列轴,以便可以沿最后一个轴连接。