max(some2Ddata,key=np.abs)
有效,但仅适用于一维复杂数组
np.max(abs(some2Ddata))
返回最大复数值的大小,但不返回值本身
我期待着:
some2Ddata = ((1+2j, 5+1j), (4+4j, 2+3j))
complexmax(some2Data)
应该返回
4+4j
,而不是 5.657
(而且绝对不是 5+1j
)。
我很难相信这个操作没有内置标准。
我们可以为此编写一个简单的函数。我们可以使用
np.argmax
来获取最大值的索引(这将基于 np.abs
)。因为 np.argmax
返回展平索引,所以我们使用 np.unravel_index
(根据 np.argmax
文档 示例)来获取 2D 索引。最后,我们在原始数组上使用该索引。
import numpy as np
def complex_max(a):
raveled_index = np.argmax(np.abs(a))
unraveled_index = np.unravel_index(raveled_index, a.shape)
return a[unraveled_index]
some2Ddata = np.array([[1+2j, 5+1j], [4+4j, 2+3j]])
res = complex_max(some2Ddata)
print(res) # (4+4j)