【发布时间】:2015-09-12 06:38:02
【问题描述】:
假设我有一个数组
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])
到目前为止,我已经计算了数组 k 中的单个列。现在我想根据列表m 中最大的浮点元素对列表m 中的元素进行分组,然后在k 上再次计算。例如:
m[2]=m[4]=0.75(数组中的最大数),这意味着数组k 中列的索引 2 和索引 4 最大。所以保持索引号通用我想对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]])
任何人都可以给我任何关于根据list m 的最大值对array k 的列索引进行分组的线索,如上所示。
【问题讨论】:
-
我不太理解你的段落中的句子“所以保持索引号通用......”。 “在
k上再次计算”是什么意思?你如何得到你在那句话中描述的组?您能否说得更清楚一点,例如更详细地向我们描述我们将采取哪些步骤来获得这些组? -
通过说我想保持索引号通用,我的意思是我想保持列表 M 中更大元素的索引号通用并使用该索引,以非最大索引分组为如上所示。
-
我正在尝试理解我提到的段落的含义以及您如何进行此分组。如果这意味着您还需要解释您是如何获得数组
m的,那么当然可以。 -
基于较低的近似值,我得到了 m。您将获得关于该主题的足够好的文献。
-
你的问题有很多不相关的细节,但没有具体说明你真正想要什么。要求的答案是什么样的?你想要一个 6×2 数组的列表吗?如果是这样,它们应该按什么顺序排列?如果不是,答案的形式是什么?
标签: python arrays algorithm numpy scipy