numpy堆栈到二维数组,从另一个堆栈中按索引选择

我有两组分类(Lc1和Lc2)和两组概率(Lp1和Lp2)。 Lp1是描述 中分类似然的概率集Lc1。我想将信息合并到最可能使用的分类中,Lc1并Lc2使用这些分类class_result。


import numpy as np


#example data

Lp1 = np.ones((2,2))*0.5

Lc2 = np.ones((2,2))


Lc1 = np.ones((2,2))

Lp2 = np.ones((2,2))*0.5


#Change some values for the example

Lp1[1,1] =0.95

Lc1[1,1] = 0


Lc2[0,1]=3

Lp2[0,1]=.95


p_stack = np.stack((Lp1,Lp2))

c_stack = np.stack((Lc1,Lc2))


index = np.argmax(p_stack, axis=2)


class_result = np.take(c_stack, index)

我的最初方法是为np.stack分类和概率集创建一个,并用于np.argmax查找在中出现最大值的轴索引p_stack。np.take的文档似乎描述了我需要执行的操作,但是我不明白为什么它返回带有1的数组。有没有一种方法可以np.stack通过指定我要选择的值的轴来减小a的维数?


我想要的结果是:


class_result = np.array([[1,3],[1,0]])


梵蒂冈之花
浏览 107回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java