Implement any and all for pyarrow numpy strings
This should work if we want to follow NumPy semantics as close as possible. I think this should work in general, but that's a discussion for another day
> I think this should work in general, but that's a discussion for another day

+1

(Also I recently realized that `Index(["A", "B"]).any_or_all()` is different from `Series(["A", "B"]).any_or_all()` and we should deprecate to get matching behavior) rebased as well Is the goal to get this in for 2.1 or is this fine for a later release? Ideally we get this in, but not a deal breaker.

cc @jorisvandenbossche for a final review  Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

1. Checkout backport branch and update it.

```
git checkout 2.1.x
git pull
```

2. Cherry pick the first parent branch of the this PR on top of the older branch:
```
git cherry-pick -x -m1 23b546f96f49611541585c3914301ba874ced308
```

3. You will likely have some merge/cherry-pick conflict here, fix them and commit:

```
git commit -am 'Backport PR #54591: Implement any and all for pyarrow numpy strings'
```

4. Push to a named branch:

```
git push YOURFORK 2.1.x:auto-backport-of-pr-54591-on-2.1.x
```

5. Create a PR against branch 2.1.x, I would have named this PR:

> "Backport PR #54591 on branch 2.1.x (Implement any and all for pyarrow numpy strings)"

And apply the correct labels and milestones.

Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon!

Remember to remove the `Still Needs Manual Backport` label once the PR gets merged.

If these instructions are inaccurate, feel free to [suggest an improvement](https://github.com/MeeseeksBox/MeeseeksDev).
                 I'll take care of the back-Ort > I think this should work in general, but that's a discussion for another day

Another day has come!