gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:34:38 25 4
gpt4 key购买 nike

我有一个 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) 

没有产生预期的结果。

最佳答案

有一种比将实部和虚部剪裁成单独的数组更有效的方法,即使用就地操作:

np.clip(x.real, clip_min, clip_max, out=x.real)
np.clip(x.imag, clip_min, clip_max, out=x.imag)

如果这些只是存储在复数中的笛卡尔坐标,您可以通过将它们保持为 float 而不是复数来将它们剪辑在单个命令中。

x = array([[-1.4,  5. ],
[-4.7, -3. ]])
np.clip(x, clip_min, clip_max)
>>> array([[-1.4, 3. ],
[-4. , -3. ]])

关于python - 如何剪辑python numpy复数数组元素的实部和虚部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60160128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com