Filtering data in arrays and keeping the same shape in axis 1
you can use np.take(a, np.where(a>100)[0], axis=0) for keeping the same shape as original
I'm trying to get some specific values given a dataframe using pandas and numpy.
My process right now is as it follows:

In[1]: df = pd.read_csv(file)
In[2]: a = df[df.columns[1]].values

Right now a has the following shape:

In[3]: a.shape
Out[4]: (8640, 1)

When I filter it out to get the values that match a given condition I don't get the same shape in the axis 1:

In[5]: b = a[a>100]
In[6]: b.shape
Out[7]: (3834,)

Right now I'm reshaping the new arrays everytime I filter them, however this is making my code look really messy and uncomfortable: 

In[8]: (b.reshape(b.size,1)).shape
Out[9]: (3834, 1)

I really need it to have the shape (x, 1) in order to use some other functions, so is it any way of getting that shape everytime I filter out the values without having to reshape it constantly?
EDIT:
The main reason I need to do this reshaping is that I need to get the minimum value in every row for two arrays with the same number of rows. What I use is np.min and np.concatenate.
For example:
av is the mean of 5 different columns in my dataframe:

av = np.mean(myColumns,axis=1)

Which has shape (8640, )
med is the median for the same columns:

med = np.median(myColumns,axis=1)

And when I try to get the minimum values I have the next error:

np.min(np.concatenate((av,med),axis=1),axis=1) Traceback (most recent
  call last):
File "", line 1, in 
      np.min(np.concatenate((av,med),axis=1),axis=1)
AxisError: axis 1 is out of bounds for array of dimension 1

However, if I reshape av and med it works fine:

np.min(np.concatenate((av.reshape(av.size,1),med.reshape(av.size,1)),axis=1),axis=1)
  Out[232]: array([0., 0., 0., ..., 0., 0., 0.])