From: Charles R H. <cha...@gm...> - 2006-08-30 00:11:16
|
On 8/29/06, Rahul Kanwar <rk...@ge...> wrote: > > Hello, > > I am trying to extract a column from a 2D array here is what is have > done: > > -------------------------------------------- > In [3]: a = array([[1,2,3],[1,2,3]]) > > In [4]: a > Out[4]: > array([[1, 2, 3], > [1, 2, 3]]) > > In [5]: a[:, 1] > Out[5]: array([2, 2]) > > In [6]: a[:, 1:2] > Out[6]: > array([[2], > [2]]) > -------------------------------------------- > > when i use a[:, 1] i get a 1x2 array where as when i use a[:, 1:2] i get > a 2x1 array. The intuitive behavior of a[:, 1] should be a 2x1 array. Am > i doing something wrong here or is there some reason for this behavior ? The behaviour is expected. a[:,1] is returned with one less dimension, just as for a one dimensional array b[1] is zero dimensional (a scalar). For instance In [65]: int64(2).shape Out[65]: () You can get what you expect using matrices: In [67]: a = mat(arange(6).reshape(2,3)) In [68]: a[:,1] Out[68]: matrix([[1], [4]]) But generally it is best to just use arrays and get used to the conventions. regards, > Rahul Chuck |