62

I have an array like this:

  array([[-0.57098887, -0.4274751 , -0.38459931, -0.58593526],
         [-0.22279713, -0.51723555,  0.82462029,  0.05319973],
         [ 0.67492385, -0.69294472, -0.2531966 ,  0.01403201],
         [ 0.41086611,  0.26374238,  0.32859738, -0.80848795]])

Now I want to extract the following:

   [-0.57098887, -0.4274751]
   [-0.22279713, -0.51723555]
   [ 0.67492385, -0.69294472]
   [ 0.41086611,  0.26374238]

So basically just first 2 columns..

KurzedMetal
  • 12,540
  • 6
  • 39
  • 65
frazman
  • 32,081
  • 75
  • 184
  • 269
  • 3
    Numpy documentation: [slicing](http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#arrays-indexing). Always check the documentation first. – Joel Cornett May 16 '12 at 19:12
  • 3
    @JoelCornett: Thanks.. so slicing is the term.. it gets pretty hard if you know the concept but not the term.. :) many thanks :) – frazman May 16 '12 at 19:13

2 Answers2

94

If a is your array:

In [11]: a[:,:2]
Out[11]: 
array([[-0.57098887, -0.4274751 ],
       [-0.22279713, -0.51723555],
       [ 0.67492385, -0.69294472],
       [ 0.41086611,  0.26374238]])
NPE
  • 486,780
  • 108
  • 951
  • 1,012
32

I know this is quite an old question -

A = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]

Let's say, you want to extract the first 2 rows and first 3 columns

A_NEW = A[0:2, 0:3]
A_NEW = [[1, 2, 3],
         [4, 5, 6]]

Understanding the syntax

A_NEW = A[start_index_row : stop_index_row, 
          start_index_column : stop_index_column)]

If one wants row 2 and column 2 and 3

A_NEW = A[1:2, 1:3]

Reference the numpy indexing and slicing article - Indexing & Slicing

Contango
  • 76,540
  • 58
  • 260
  • 305
o12d10
  • 800
  • 3
  • 17
  • 31