Python拾遗系列:如何在二维numpy数组的每一行中找到最大值

1.导入numpy包

import numpy as np

2.造数据

指定随机种子,保证生成的随机数是一样的

np.random.seed(1)
data = np.random.randint(1,10, [6,4])
print(data)
[[6 9 6 1]
 [1 2 8 7]
 [3 5 6 3]
 [5 3 5 8]
 [8 2 8 1]
 [7 8 7 2]]

3. 我们希望输出的是:

[9, 8, 6, 8, 8, 8]

4. 方案一

  • 使用amax函数

Return the maximum of an array or maximum along an axis.

我们的目标是取每行的最大值,也就是说要消掉列(第一个维度)

np.amax(data, axis=1)
array([9, 8, 6, 8, 8, 8])

5. 方案二

  • 使用apply_along_axis

第一个参数是要用的func, 第二个参数是基于那个维度,第三个参数是指对那个ndarray对象操作

np.apply_along_axis(np.max, 1, data)
array([9, 8, 6, 8, 8, 8])
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容