根据python中另一个列表的最大值对数组的列索引进行分组

萨彦丹·穆克吉

假设我有一个数组

k= array([[1, 2, 3, 4, 5],
          [5, 6, 7, 8, 9],
          [2, 5, 4, 7, 3],
          [4, 7, 6, 8, 2],
          [1, 2, 4, 3, 6],
          [7, 8, 9, 5, 4]])

假设在计算完数组中的每一列后,我array([0.6,0.4,0.75,0.2,0.75])分别得到了这样的结果:

在column1上进行计算,即对array([1,5,2,4,1,7])结果进行计算,在0.6上进行计算,在column2上进行计算,即对array([2,6,5,7,2,8])结果进行计算的在0.4上,在column3上进行计算,即对array([3,7,4,6,4,9])结果进行的计算在0.75上,等等。

令计算出的列表为m。这样

m=array([0.6,0.4,0.75,0.2,0.75])

到目前为止,我已经为array中的单列进行了计算k现在,我想m基于列表中最大的浮点元素将列表中的元素分组,m然后再次对k进行计算。例如:

m[2]=m[4]=0.75(数组中最大的数字),这意味着数组中列的索引2和索引4k最大。因此,要保持该索引号的通用性,我想k[:,2] with k[:,0],k[:,2] with k[:,1],k[:,2] with k[:,3] and similarly k[:,4] with k[:,0],k[:,4] with k[:,1],k[:,4] with k[:,3]再次分组并计算k

这样的分组k[:,2] with k[:,0]意味着:

k0_2=array([[1,3],          k1_2=array([[2,3],          k3_2=array([[4,3],
            [5,7],                      [6,7],                      [8,7],
            [2,4],                      [5,4],                      [7,4],
            [4,6],                      [7,6],                      [8,6],
            [1,4],                      [2,4],                      [3,4],  
            [7,9]])                     [8,9]])                     [5,9]])

k0_4=array([[1,5],          k1_4=array([[2,5],          k3_4=array([[4,5],
            [5,9],                      [6,9],                      [8,9],
            [2,9],                      [5,3],                      [7,3],
            [4,2],                      [7,2],                      [8,2],
            [1,6],                      [2,6],                      [3,6],  
            [7,4]])                     [8,4]])                     [5,4]])

任何人都可以给我关于array k基于的最大值对的列索引进行分组的任何list m提示。

萨尔斯帕兹

这有帮助吗?

import numpy as np

k= np.array(
    [[1, 2, 3, 4, 5],
     [5, 6, 7, 8, 9],
     [2, 5, 4, 7, 3],
     [4, 7, 6, 8, 2],
     [1, 2, 4, 3, 6],
     [7, 8, 9, 5, 4]])

cols=[2,4]
others = [c for c in range(k.shape[1]) if c not in cols]
groups = [k[:,[o, c]] for c in cols for o in others]
for g in groups:
    print(g)
    print('')

这给了我

[[1 3]
 [5 7]
 [2 4]
 [4 6]
 [1 4]
 [7 9]]

[[2 3]
 [6 7]
 [5 4]
 [7 6]
 [2 4]
 [8 9]]

[[4 3]
 [8 7]
 [7 4]
 [8 6]
 [3 4]
 [5 9]]

[[1 5]
 [5 9]
 [2 3]
 [4 2]
 [1 6]
 [7 4]]

[[2 5]
 [6 9]
 [5 3]
 [7 2]
 [2 6]
 [8 4]]

[[4 5]
 [8 9]
 [7 3]
 [8 2]
 [3 6]
 [5 4]]

我认为您的k_04数组中存在印刷错误。我认为k_04 [2,10应该是3,而不是9,不是吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将多维数组中的值与另一个数组的索引进行比较

如何对一列进行分组并获得另一个列的最大值并使用python返回整行

如何基于mongodb中的另一个数组值对数组进行分组

Python:如何遍历列表以找到另一个列表中索引为正值的最大值

如何根据 Python 中另一个列表的(子列表)索引对列表进行分区

根据另一个 numpy 数组的值对一个 numpy 数组中的值进行分组

根据python中的索引用另一个列表的值替换列表中的值

使用LINQ从另一个属性分组的列表中删除除最大值以外的所有值

如何根据另一个数组的值对数组的值进行排序

根据另一个数据框的值对数据框条目进行分组

根据最大值和长度对数组进行分组

按从最大值到最小值的值顺序获取索引,而无需对输出索引列表进行排序,也可以修改另一个列表

根据另一个数据框对数据框的列进行分组

根据另一个对象数组的属性值对数组进行排序

根据另一个数组中的排序索引对数组重新排序

根据另一个数组中的顺序对数组数组进行排序

基于另一个数组索引在 PHP 中对数组进行排序

我想根据javascript中的另一个数组对数组进行排序?

根据javascript中的另一个数组对数组进行排序

根据另一个数组中定义的排序顺序对数组进行排序

根据存储在另一个数组中的引用对数组进行排序

从另一个列表中的列表中的对象获取最大值[C#]

根据另一个列表值对列表的索引值进行排序

将列表的每个元素与其在另一个元素中的对应索引进行比较

python pandas:根据列表中列的另一个值设置列的值

根据R中另一个排序后的列值对数据框进行排序

Scala根据另一个列表中的值对一个列表进行排序

根据另一个数组列表的值对 Kotlin 数组列表进行排序

根据另一个定制顺序的列对数据框中的列对进行排序