假设我有一个数组
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] 删除。
我来说两句