python - Python中的Matlab函数等价
问题描述
我在 Matlab 中编写代码,必须返回一个矩阵,它给出一个 0 或 1 来表示原始矩阵中的元素。
我想知道是否有与上述等效的 python 而不运行嵌套循环来实现相同的结果。
c = [2; 1; 3]
temp = eye(3,3)
d = temp(c,:)
d 矩阵需要告诉我原始矩阵中存在什么数字。i = 1, j = 2 如果 1 告诉我原始矩阵的第一个元素是 2
解决方案
该代码的“直接”等效项是这个(注意 0 索引,与 matlab 的 1 索引相比)
import numpy
c = numpy.array( [1, 0, 2] )
temp = numpy.eye( 3 )
d = temp[c, :]
这是官方 numpy 文档中有关如何使用“索引数组”进行索引的文档的链接
但是,一般而言,您在上面所做的称为“一个热”编码(或“one-of-K”,根据 Bishop2006)。在各种机器学习工具包中有一种热编码的专门方法,它们具有一些优势,因此您可能更愿意查找这些方法。
推荐阅读
- cloud-foundry - 关键云代工是否支持 Windows 7 32 位?
- android - 从另一个片段中的目录更新片段中的列表视图元素
- r - 如何在频率图的 y 轴上显示刻度?
- java - 使用 RestTemplate 调用外部 REST 端点时出错
- fasttext - 在命令行中运行 FastText 自动调整错误
- authentication - 当有人以我身份运行 Google Apps Script Web 应用程序时获取用户信息
- laravel - 未找到列:
- c# - 为什么我可以声明一个与父作用域中的变量同名的子变量?
- winforms - 哈希表内的 WinForm
- java - 日历行为与 LocalDate 不兼容?