Taewan
Taewan

Reputation: 1227

Meaning of X = X[:, 1] in Python

I am studying this snippet of python code. What does X = X[:, 1] mean in the last line?

def linreg(X,Y):
    # Running the linear regression
    X = sm.add_constant(X)
    model = regression.linear_model.OLS(Y, X).fit()
    a = model.params[0]
    b = model.params[1]
    X = X[:, 1]

Upvotes: 51

Views: 168734

Answers (5)

S L SREEJITH
S L SREEJITH

Reputation: 63

It is like you are specifying the axis. Consider the starting column as 0 then as you go through 1,2 and so on.

The syntax is x[row_index,column_index]

You can also specify a range of row values as per your need in row_index, eg:1:13 extracts first 13 rows along with whatever specified in the column

Upvotes: 4

Adiraamruta
Adiraamruta

Reputation: 141

Something you should know

The term you need to search for is "slice". x[start:end:step] is the full form. Here we can omit some values and it will use a default value:

  • start defaults to 0,
  • end defaults to the length of the list,
  • and step defaults to 1.

And hence x[:] means the same as x[0:len(x):1]

Upvotes: 14

Ramahanisha Gunda
Ramahanisha Gunda

Reputation: 211

Meaning of X = X[:, 1] in Python is:

  • X is a dataset or a array
  • Say Here X have n rows and n columns
  • so by doing x=x[:,1] we get all the rows in x present at index 1.

for example:

x = array([[0.69859393, 0.1042432 ],
   [0.55138493, 0.18639614],
   [0.27338772, 0.80351282]])

x[:,1] = array([0.1042432 , 0.18639614, 0.80351282])

Upvotes: 9

Ramahanisha Gunda
Ramahanisha Gunda

Reputation: 211

x[:,1] this is 2d slicing, here x[row_index, column_index]

Upvotes: 3

Leb
Leb

Reputation: 15953

x = np.random.rand(3,2)

x
Out[37]: 
array([[ 0.03196827,  0.50048646],
       [ 0.85928802,  0.50081615],
       [ 0.11140678,  0.88828011]])

x = x[:,1]

x
Out[39]: array([ 0.50048646,  0.50081615,  0.88828011])

So what that line did is sliced the array, taking all rows (:) but keeping the second column (1)

Upvotes: 78

Related Questions