我想根据两列的值拆分一个 numpy 数组。我想在前两列(同时)达到最大值后在索引处拆分。每列数次达到最大值。可以单独看到每一列的最大值(当另一列不在最大值时),但是当它们都处于最大值时我需要分开。假设我有
arr = [[ 1., 5, 12],
[ 1., 9, 5],
[15., 5, 5],
[25., 7, 4],
[25., 9, 4],
[1.5, 4, 10],
[ 1., 8, 7],
[20., 5, 6],
[25., 8, 3],
[25., 9, 3]]
我想得到:
arr_1 = [[ 1., 5, 12],
[ 1., 9, 5],
[15., 5, 5],
[25., 7, 4],
[25., 9, 4]]
arr_2 = [[1.5, 4, 10],
[ 1., 8, 7],
[20., 5, 6],
[25., 8, 3],
[25., 9, 3]]
最佳答案
假设您希望输出为列表的列表,您可以遍历原始数组的元素并查找“分隔”元素。
一种可能的实现方式:
def split_at_max(arr):
m0 = max(a[0] for a in arr)
m1 = max(a[1] for a in arr)
res = [[]]
for i,a in enumerate(arr):
res[-1].append(a)
if (a[:2] == [m0, m1]) and (i != len(arr) - 1):
res.append([])
return res
关于python - 如何根据两列的最大值拆分数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64063499/