Remove FrozenNDArray
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

@jbrockmendel this is partially a culprit for the circular references you would get when trying to import `pandas.core.reshape.concat`. To try and frame the issue,

1. pandas.core.base requires concat in some places, but if you try to move this to global imports THEN
2. concat requires an import of pandas.core.index WHICH
3. requires imports from pandas.core.indexes.frozen WHICH
4. require the import of PandasObject from pandas.core.base

But PandasObject is not defined by the time step 4 comes around, hence the circular import

In a follow up could maybe question if FrozenList really needs to inherit from PandasObject, but will leave that to a separate discussion Not having looked at the test failures yet, two thoughts: 1) im on board for removing this if we can and 2) not needing to subclass PandasObject is also plausible Closing to clear queue but plan on coming back to this This seems to have caused the problem described here:

https://stackoverflow.com/questions/61641738/pandas-1-0-cannot-pickle-load-dict-containing-dataframe-with-multiindex

which I'm now also experiencing. I dumped a MultiIndex dataframe containing ndarrays to a pickle on disk under pandas 0.25.x in Python 3.6, and now I'm getting:

`AttributeError: Can't get attribute 'FrozenNDArray' on <module 'pandas.core.indexes.frozen'`

when trying to load it in pandas 1.0.3 (still on Python 3.6). Any suggestions/workarounds? Should I instead open up a new issue?

This solved issue seems related, but is for Python 2.7:

https://github.com/pandas-dev/pandas/issues/31988

This comment in the original rationale for getting rid of `FrozenNDArray` mentions `pandas.compat.pickle_compat.py`, which seems relevant:

https://github.com/pandas-dev/pandas/issues/9031#issuecomment-306659873 Can you open a dedicated issue for that? I think need to define some pickle combat for that particular use case but can discuss on its own thread