Python中的Matlab函数等价性

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

我正在用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中的一个”,根据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, :]