> Sounds good to me. I agree that we should prioritize within-numpy > consistency over consistency with Python. >
I agree with that. Because of numpy consitetncy, the `**` operator should always return float. Right now the case is: >>> aa = np.arange(2, 10, dtype=int) array([2, 3, 4, 5, 6, 7, 8, 9]) >>> bb = np.linspace(0, 7, 8, dtype=int) array([0, 1, 2, 3, 4, 5, 6, 7]) >>> 1/aa array([ 0.5 , 0.33333333, 0.25 , 0.2 , 0.16666667, 0.14285714, 0.125 , 0.11111111]) >>> aa**-1 array([0, 0, 0, 0, 0, 0, 0, 0]) >>> 1/aa**2 array([ 0.25 , 0.11111111, 0.0625 , 0.04 , 0.02777778, 0.02040816, 0.015625 , 0.01234568]) >>> aa**-2 array([0, 0, 0, 0, 0, 0, 0, 0]) >>> aa**bb array([ 1, 3, 16, 125, 1296, 16807, 262144, 4782969]) >>> 1/aa**bb array([ 1.00000000e+00, 3.33333333e-01, 6.25000000e-02, 8.00000000e-03, 7.71604938e-04, 5.94990183e-05, 3.81469727e-06, 2.09075158e-07]) >>> aa**(-bb) array([1, 0, 0, 0, 0, 0, 0, 0]) For me this behaviour is confusing. But I am not an expert just a user. I can live together with anything if I know what to expect. And I greatly appreciate the work of any developer for this excellent package.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion