Python中的Matlab函数等价性
我正在用Matlab编写代码,必须返回一个矩阵,该矩阵给出0或1来表示原始矩阵中的元素 我想知道是否有类似于上述的python,而不运行嵌套循环来实现相同的结果Python中的Matlab函数等价性,python,matlab,Python,Matlab,我正在用Matlab编写代码,必须返回一个矩阵,该矩阵给出0或1来表示原始矩阵中的元素 我想知道是否有类似于上述的python,而不运行嵌套循环来实现相同的结果 c = [2; 1; 3] temp = eye(3,3) d = temp(c,:) d矩阵需要告诉我原始矩阵中的数字。 i=1,j=2如果1告诉我原始矩阵的第一个元素是2,则该代码的“直接”等价物是这样的(请注意,与matlab的1索引相比,0索引) 以下是有关的文档链接 然而,一般来说,你在上面所做的被称为“一个热”编码(或“K
c = [2; 1; 3]
temp = eye(3,3)
d = temp(c,:)
d矩阵需要告诉我原始矩阵中的数字。
i=1,j=2如果1告诉我原始矩阵的第一个元素是2,则该代码的“直接”等价物是这样的(请注意,与matlab的1索引相比,0索引)
以下是有关的文档链接
然而,一般来说,你在上面所做的被称为“一个热”编码(或“K中的一个”,根据Bishop2006)。各种机器学习工具包中都有专门的热编码方法,这些方法带来了一些优势,因此您可能更愿意查找这些方法。我确实给出了答案,但仔细想想,我认为它不会产生与您相同的输出。能否显示
d
以显示所需输出的示例?返回一个大小为c
的数组,其中等于k
的元素替换为1
,其他元素替换为0
?您要查找的是one hot
编码(或者one-of-k
)。我敢肯定这里有数百个副本。一次性编码:太棒了!我写了同样的代码。几乎然而,在我的例子中,我没有替换c数组中的3。完全忘记了Matlab索引不同于Python
import numpy
c = numpy.array( [1, 0, 2] )
temp = numpy.eye( 3 )
d = temp[c, :]