2014-07-07 160 views
2

我目前通過Python代碼回購讀,我不知道我理解這個語法:這行Python代碼是做什麼的?

Sp = S[:Kp,:] 
Sc = S[Kp:,:] 

我猜它是與拼接,但我不知道怎麼的逗號運算符正在被使用。 S來自外部系統,通過查看代碼,其格式不可辨別。我會猜測它是一個列表/數組/矩陣。 Kp是一個整型變量。

上述代碼運行後,SpSc會保持什麼樣的狀態?

+0

'S'是一個numpy數組,很有可能。 –

+0

看起來像numpy和[numpy切片](http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html)。 – Ffisegydd

+0

實際上'S'是從matlab文件中讀取和填充的,這是我所知道的。任何方式來檢查它是否是一個numpy數組? – PhD

回答

1

S可能是一個numpy的ndarray。 Kp可能是一個整數。 你猜對了,它是「拼接」,但大多數人稱這種切片。它在行上切片,而逗號引用所有列後的第二個:

Sp = S[:Kp,:] 

SpS包含所有行最多(但不包括)Kp子數組。

Sc = S[Kp:,:] 

ScSKp到結束(含)的所有行子陣列。

+0

我能猜到。但我無法弄清楚的是使用「逗號」和後續的「:」。他們真的在做什麼嗎?如果我忽視他們,我可以辨別你的話。但它有什麼改變嗎? – PhD

+0

讓它不會改變任何東西。代碼可以等效地爲'S [:Kp]'和'S [Kp:]'。 – wim

+0

感嘆!我希望人們用代碼片段寫下實際上做了些什麼:P – PhD