给定一个1维的numpy数组arr
和一个索引数组ind
,
numpy.split(arr, ind)
会根据ind
将arr
分割成多个子数组并返回这些子数组组成的列表。我们可以使用Python的for
循环遍历所有子数组,分别获取它们的最大值。
例如:
import numpy as np
arr = np.arange(12)
ind = np.array([3, 5, 9])
sub_arrays = np.split(arr, ind)
# 这将得到:[array([0, 1, 2]), array([3, 4]), array([5, 6, 7, 8]), array([ 9, 10, 11])]
max_values = [sub_array.max() for sub_array in sub_arrays]
# 这将得到:[2, 4, 8, 11]
我们能否采用一种numpy风格的向量化方法来实现同样的功能呢?比如,不先对arr
进行分割。