python - 谁能解释一下这个简单的 Python 代码?
问题描述
我有一个简单的函数,它返回零和一的矩阵。我不明白 line: out[range(n), vec] = 1 是如何工作的。向量 v 可以具有从 0 到 9 的值。
import numpy as np
def one_hot_encode(vec, vals=10):
n = len(vec)
out = np.zeros((n, vals))
out[range(n), vec] = 1
return out
v = [1,2,3,1,3,5,7,8,9,1,2,3,4,5,6,7,8,9,0,1,2,3,1,3,5,7,8,9,1,2,3]
one_hot_encode(v, 10)
解决方案
行 line: out[range(n), vec] = 1 放置与 vec 值对应的行,即如果 vec 的第一个值为 1,则在 out 矩阵中第一行和第二列(值 +1)将被分配为 1。如果 4rt 值为 1,则第 4rt 行和第 2 列将被分配 1。
推荐阅读
- python - 如何在 Kodi 的字符串中读取 utf-8 编码的 JSON 文件(本地/来自互联网)?
- jquery - 活动类仅适用于第一个元素
- itext7 - Itext 7 - 需要解决方案(pdfdocument.GetPage(4).GetContentBytes())
- sdk - Zeus Yocto build linux cpp 应用开发
- javascript - 如何修改levenshtein编辑距离功能更灵活
- ios - AVFoundation 如何循环播放一段特定时间的音频?
- lightbox - DevTools 找不到 /lightbox-plus-jquery.min.map:系统错误:net::ERR_FILE_NOT_FOUND
- c++ - 这个 C++ 多重继承是否正确?
- class - WooCommerce 4.1+ 地理位置/Geo_IP 和 Maxmind GeoLite2?
- react-native - 在 react-native 的底部导航上方创建一个快餐栏?