我需要找到一个列表中所有索引项的最大值,有什么高效的方法吗?numpy有没有相关函数或是Pythonic风格的最佳方式?我的列表元素长度都超过100,并且每个列表都包含20个元素。
例如:
[[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]]
max_list = [4,3,3,4,5,6]
我的列表将会包含大约100个元素,每个内部列表都有20个元素
我需要找到一个列表中所有索引项的最大值,有什么高效的方法吗?numpy有没有相关函数或是Pythonic风格的最佳方式?我的列表元素长度都超过100,并且每个列表都包含20个元素。
例如:
[[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]]
max_list = [4,3,3,4,5,6]
我的列表将会包含大约100个元素,每个内部列表都有20个元素
data = [[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]]
list(map(max, *data))
list
在Python 2中不是必需的(甚至在Python 3中也取决于您对结果要做什么)。
map
可以同时迭代多个列表。 - Jean-François Fabre同时没有使用numpy(但是有评论作者的帮助)
inp = [[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]]
out = [max(s) for s in zip(*inp)]
a = np.array([[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]])
a.max(0) #a.max(axis=0)
array([4, 3, 3, 4, 5, 6])