2014-07-07 120 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