" [:,]"列表切片python,这是什么意思?

时间:2013-07-26 13:10:35

标签: python numpy

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

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

任何帮助都非常感谢!

2 个答案:

答案 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)
>>>