如何剪裁复数python numpy数组元素的实部和虚部
我有一个复数的numpy数组。我试图将数组中每个数字的实部和虚部裁剪到某个规定的最小值和最大值(对实部和虚部应用相同的裁剪)。例如,考虑:如何剪裁复数python numpy数组元素的实部和虚部,python,numpy,complex-numbers,Python,Numpy,Complex Numbers,我有一个复数的numpy数组。我试图将数组中每个数字的实部和虚部裁剪到某个规定的最小值和最大值(对实部和虚部应用相同的裁剪)。例如,考虑: import numpy as np clip_min = -4 clip_max = 3 x = np.array([-1.4 + 5j, -4.7 - 3j]) 剪裁操作的期望输出为: [-1.4 + 3j, -4-3j] 我可以通过对复数数组的实部和虚部调用np.clip,然后将它们相加(将虚部剪裁数据乘以1j)来实现这一点。有没有一种方法可以
import numpy as np
clip_min = -4
clip_max = 3
x = np.array([-1.4 + 5j, -4.7 - 3j])
剪裁操作的期望输出为:
[-1.4 + 3j, -4-3j]
我可以通过对复数数组的实部和虚部调用np.clip,然后将它们相加(将虚部剪裁数据乘以1j)来实现这一点。有没有一种方法可以通过一个命令来实现这一点
np.clip(x, clip_min, clip_max)
不会产生期望的结果。有一种比使用就地操作将实部和虚部裁剪为单独的数组更有效的方法:
np.clip(x.real, clip_min, clip_max, out=x.real)
np.clip(x.imag, clip_min, clip_max, out=x.imag)
如果这些只是以复数形式存储的笛卡尔坐标,则可以通过将它们保持为浮点数而不是复数来在单个命令中剪裁它们
x = array([[-1.4, 5. ],
[-4.7, -3. ]])
np.clip(x, clip_min, clip_max)
>>> array([[-1.4, 3. ],
[-4. , -3. ]])