我正在阅读一些代码,我看到" list[:,i] for i in range(0,list))......"
我对逗号在那里做了什么感到困惑,:,
并且谷歌没有提供任何答案,因为你不能谷歌标点符号。
任何帮助都非常感谢!
答案 0 :(得分:10)
您正在查看numpy
多维数组切片。
逗号标记一个元组,将其读作[(:, i)]
,numpy
数组解释为:第一个要用:
端到端(所有行)切片的维度,然后对于每一行,i
选择一个列。
请参阅numpy
教程中的Indexing, Slicing and Iterating。
答案 1 :(得分:2)
没有试图挖掘Martijn的答案,但我对此感到困惑,所以写了一个小小的getitem探险家,显示正在发生的事情。 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)
>>>