4

我正在阅读一些代码,我看到了" list[:,i] for i in range(0,list))......"

我对逗号在那里做什么感到困惑,:,谷歌没有提供任何答案,因为你不能谷歌标点符号。

非常感谢任何帮助!

4

2 回答 2

11

您正在查看numpy多维数组切片。

逗号标记一个元组,将其读作[(:, i)]numpy数组将其解释为:第一个维度与 进行端到端(所有行)切片:,然后为每一行i选择列。

请参阅教程中的索引、切片和迭代。numpy

于 2013-07-26T13:11:45.430 回答
2

不是试图偷走 Martijn 的答案,但我对此也感到困惑,所以给自己写了一个小 getitem explorer 来显示正在发生的事情。Python 为getitem提供了一个切片对象,对象可以决定如何处理。多维数组也是元组。

>>> class X(object):
...     def __getitem__(self, name):
...             print type(name),name
...
>>> x=X()
>>> x[:,2]
<type 'tuple'> (slice(None, None, None), 2)
>>> x[1,2,3,4]
<type 'tuple'> (1, 2, 3, 4)
>>>
于 2013-07-26T16:02:48.090 回答