use __getitem__ directly in _group_aggregate instead of using filter
added TODO
in a binary op, "broadcast" other instead of self

so that the result has the first argument axis order