如何剪裁复数python numpy数组元素的实部和虚部

2024-09-25 12:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个复数的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)来实现这一点。有没有一种方法可以通过一个命令来实现这一点

np.clip(x, clip_min, clip_max) 

不会产生期望的结果


Tags: 数据importnumpyclipasnp数字数组
1条回答
网友
1楼 · 发布于 2024-09-25 12:29:12

有一种比使用就地操作将实部和虚部裁剪为单独阵列更有效的方法:

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. ]])

相关问题 更多 >