numpy.minimum似乎不适用于复数:
np.minimum(5+3*1j,4+30*1j)
(4+30j)
我想保持最大幅度的值。 它仅比较实部。还有其他用于元素最小比较的功能吗? MATLAB min确实可以处理复数。 谢谢
答案 0 :(得分:3)
如果要按幅度比较复数,可以使用内置的abs
然后比较结果:
>>> np.minimum(abs(5+3*1j),abs(4+30*1j))
5.830951894845301
要获得最小的初始数字而不是其大小,请使用argmin:
>>> nums = [5+3*1j, 4+30*1j]
...
>>> nums[np.abs(nums).argmin()]
(5+3j)
答案 1 :(得分:2)
您可以做到
X = np.array([3+4j, 10+5j, 1+1j])
min_X = min(X, key=np.abs)
print(min_X)
Out: (1+1j)
答案 2 :(得分:1)