问题 Normally the dtype is hidden when it's equivalent to the native type: >>> import numpy as np >>> np.arange(5) array([0, 1, 2, 3, 4]) >>> np.arange(5).dtype dtype('int32') >>> np.arange(5) + 3 array([3, 4, 5, 6, 7]) But somehow that doesn't apply to floor division or modulo: >>> np.arange(5) // 3 array([0, 0, 0, 1, 1], dtype=int32) >>> np.arange(5) % 3 array([0, 1, 2, 0, 1], dtype=int32) Why is there a difference? Python 3.5.4, NumPy 1.13.1, Windows 64bit 回答1: You actually have multiple