需要帮助了解此Python列表语法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要帮助了解此Python列表语法相关的知识,希望对你有一定的参考价值。
我在理解此语法在Python中的含义时遇到了麻烦:
out = out[lengths - 1, range(len(lengths))]
为什么列表内有范围?这是如何运作的?对于上下文,我正在PyTorch中训练机器学习模型。 lengths是输入长度的列表。
答案
我假设lengths
是整数数组。 (可能是一个Numpy数组)
第一个索引lengths - 1
将给出由-1
减去的索引列表。第二个索引range(len(lengths))
将给出从0到lengths
大小的数字列表。
我不知道代码中的特定逻辑是什么,但是通常,您可以提供一个索引列表以在特定位置选择数据。
out = np.array([[1,2,3],[4,5,6],[7,8,9]])
-> array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
first_idx = [0, 1, 2]
second_idx = [2, 1, 0]
# (0,2), (1,1), (2,0)
out[first_idx, second_idx]
-> array([3, 5, 7])
以上是关于需要帮助了解此Python列表语法的主要内容,如果未能解决你的问题,请参考以下文章