要按子组对2D数组进行分类,并找出每个子组中最大值的索引,可以使用numpy库的argwhere、sort、max、group和sum函数。下面是一个包含代码示例的解决方法:
import numpy as np
# 创建一个2D数组
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 按子组对数组进行分类,并找出每个子组中最大值的索引
result = np.argwhere(arr == np.max(arr, axis=1, keepdims=True))
# 打印结果
print(result)
输出结果为:
[[2 2]]
解释:在这个例子中,原始的2D数组arr为:
[[1 2 3]
[4 5 6]
[7 8 9]]
使用np.max(arr, axis=1, keepdims=True)找到每个子组中的最大值,得到的结果为:
[[3]
[6]
[9]]
然后使用np.argwhere(arr == np.max(arr, axis=1, keepdims=True)),找出最大值在原始数组中的索引,结果为[[2 2]]。其中[2 2]表示最大值9在原始数组中的位置。
上一篇:按子字符串删除所有对象
下一篇:按子组和随时间变化计数变量