繁体   English   中英

大多数pythonic方式找到np.array列表中的最大元素?

[英]Most pythonic way to find the maximum elements out of list of np.array?

我有一个np.array列表, mya = [a0,...,an] (所有这些都具有相同的形状和dtype)。 假设ai的形状为ai = array[xi0,xi1,..,xim] 我想得到

[max((a[i] for a in mya)) for i in range(m)]

例如,设x=np.array([3,4,5])y=np.array([2,50,-1])z=np.array([30,0,3])然后对于mya = [x,y,z] ,我想要[30,50,5] (或等于np.array )。

通过m=len(mya[0])给出m ,我上面的代码确实有效,但看起来太单调乏味了。 建议的方法是什么?

在numpy, numpy.amax(myarray)给你最大的myarray 如果查找第一个dimmension的每个列表/数组的最大值,也可以设置所需的 在这种情况下,它应该是:

x=np.array([3,4,5])
y=np.array([2,50,-1])
z=np.array([30,0,3])
mya = [x,y,z] 
maximum = np.amax(mya, axis=0)
# maximum will store a list as [maximumofx, maximumofy, maximumofz] -> [30,50,5]

查看文档

正如@Ruben_Bermudez所说, np.amax就是我想要的。

np.amax ,提供SciPy的文档这里 ,接受一个数组状的数据作为输入,并返回“最大沿着轴线阵列或最大的”。 其可选参数中包括axis ,它指定了沿其找到最大值的轴。

默认情况下,输入是平坦的,所以

np.amax(mya) # => 50

指定axis=0

np.amax(mya,axis=0)  # np.array([30,50,5])

这就是我想要的。

对不起这个烂摊子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM