我讀了一些代碼,我看到" list[:,i] for i in range(0,list))......"
「[:,]」列表切片python,這是什麼意思?
我感到迷惑,什麼逗號在那裏做,:,
和谷歌提供,你不能谷歌標點符號沒有答案。
任何幫助非常感謝!
我讀了一些代碼,我看到" list[:,i] for i in range(0,list))......"
「[:,]」列表切片python,這是什麼意思?
我感到迷惑,什麼逗號在那裏做,:,
和谷歌提供,你不能谷歌標點符號沒有答案。
任何幫助非常感謝!
您正在查看numpy
多維陣列切片。
逗號標誌着一個元組,它讀作[(:, i)]
,其numpy
數組作爲解釋:第一尺寸要被切斷的端至端(全部行)與:
,則對於每一行,i
選擇一個柱。
請參閱numpy
教程中的Indexing, Slicing and Iterating。
似乎有一種奇怪的做法......'列中的列'T' –
@JonClements:假設數組是兩列的,維。否則,您需要'numpy.swapaxes()'交換第二個和第一個軸。 –
@SvenMarnach:對;我的新娘與numpy在這裏閃耀。 –
沒有試圖挖掘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)
>>>
+1,這表明numpy數組以外的對象可以是用元組索引(請注意,OP不包含numpy標籤)。仍然這個'x'導致錯誤''我在範圍內(0,x)'。 OP應該張貼更多他/她正在閱讀的代碼... –
谷歌搜索列表切割python逗號作品。只是提到它,因爲你提到了尋找這個問題的困難。 – keyser
這是一個奇怪的例子,如果變量'list'是一個多維的numpy數組(如Martijn所示),最後一位'for range in(0,list)'沒有意義。還有一個名爲'list'的變量是不好的,因爲它隱藏了Python列表函數... –