I have a numpy array like
np.array([[1.0, np.nan, 5.0, 1, True, True, np.nan, True],
[np.nan, 4.0, 7.0, 2, True, np.nan, False, True],
[2.0, 5
You can't do this with an object array and nan You would need to find a numeric type everything would fit into. When used as an object instead of as a float, nan returns false for <, >, and ==.
Additionally, True and False are equivalent to 0 and 1, so I don't think there is any way to get your expected result.
You would have to see if converting the dtype to float would give you proper results for your use case.