Working with arrays inside cells - mean() works, median() crashes
#### Code Sample, a copy-pastable example if possible

```python
import numpy as np
import pandas
a = np.eye(4, dtype= np.float)
df = pandas.DataFrame()
df['test'] = [a,a,a,a]
# works
df['test'].mean()
# doesn't
df['test'].median()

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\nanops.py in f(values, axis, skipna, **kwds)
    118                 else:
--> 119                     result = alt(values, axis=axis, skipna=skipna, **kwds)
    120             except Exception:

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\nanops.py in nanmedian(values, axis, skipna)
    337     if not is_float_dtype(values):
--> 338         values = values.astype('f8')
    339         values[mask] = np.nan

ValueError: setting an array element with a sequence.

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\nanops.py in f(values, axis, skipna, **kwds)
    121                 try:
--> 122                     result = alt(values, axis=axis, skipna=skipna, **kwds)
    123                 except ValueError as e:

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\nanops.py in nanmedian(values, axis, skipna)
    337     if not is_float_dtype(values):
--> 338         values = values.astype('f8')
    339         values[mask] = np.nan

ValueError: setting an array element with a sequence.

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
<ipython-input-195-87f0d4023067> in <module>()
      7 df['test'].mean()
      8 # doesn't
----> 9 df['test'].median()

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\generic.py in stat_func(self, axis, skipna, level, numeric_only, **kwargs)
   6340                                       skipna=skipna)
   6341         return self._reduce(f, name, axis=axis, skipna=skipna,
-> 6342                             numeric_only=numeric_only)
   6343 
   6344     return set_function_name(stat_func, name, cls)

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\series.py in _reduce(self, op, name, axis, skipna, numeric_only, filter_type, **kwds)
   2379                                           'numeric_only.'.format(name))
   2380             with np.errstate(all='ignore'):
-> 2381                 return op(delegate, skipna=skipna, **kwds)
   2382 
   2383         return delegate._reduce(op=op, name=name, axis=axis, skipna=skipna,

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\nanops.py in _f(*args, **kwargs)
     60             try:
     61                 with np.errstate(invalid='ignore'):
---> 62                     return f(*args, **kwargs)
     63             except ValueError as e:
     64                 # we want to transform an object array

~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\nanops.py in f(values, axis, skipna, **kwds)
    128 
    129                     if is_object_dtype(values):
--> 130                         raise TypeError(e)
    131                     raise
    132 

TypeError: setting an array element with a sequence.

```
#### Problem description
In a "pandas flow", building a complex "one-liner" commands this behavior is an unexpected error. Some commands work (e.g. sum, cumsum), some don't (min/max/median/std)
I think this translates to how the internal numpy array is stored/passed to numpy. 

#### Expected Output
This workaround works, but breaks the "pandas flow" completely:

```python
np.nanmedian(np.array(list(df['test'])), axis=0)
array([[ 1.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  1.]])
```

#### Output of ``pd.show_versions()``

<details>

[paste the output of ``pd.show_versions()`` here below this line]
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.3.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.20.3
pytest: 3.2.1
pip: 9.0.1
setuptools: 36.5.0.post20170921
Cython: 0.26.1
numpy: 1.13.3
scipy: 0.19.1
xarray: None
IPython: 6.1.0
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.2
feather: None
matplotlib: 2.1.0
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.0
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None

</details>
