REF: _cython_operation handle values.ndim==1 case up-front
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

neutralish on perf? Yes This will give a slowdown for ArrayManager, because you are calling itself (`_cython_operation`) again, which means that everything in the beginning of `_cython_operation` is repeated, and thus done twice per column (check for numeric dtype, for disallow_invalid_ops, check for extension arrays -> those are already costly when done repeatedly in wide dataframes). > and thus done twice per column (check for numeric dtype, for disallow_invalid_ops, check for extension arrays -> those are already costly when done repeatedly in wide dataframes).

could move these to after the 1d check I am not sure that's possible with the dispatching to `_ea_wrap_cython_operation`, which needs the 1D EA as is, and not reshaped to a 2D array