1 python numpy complex-numbers
max(some2Ddata,key=np.abs)有效,但仅适用于一维复数数组
np.max(abs(some2Ddata))返回最大复数值的大小,但不返回该值本身
我期待着:
some2Ddata = ((1+2j, 5+1j), (4+4j, 2+3j))
complexmax(some2Data)
Run Code Online (Sandbox Code Playgroud)
哪个应该返回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)
Run Code Online (Sandbox Code Playgroud)