В numpy, похоже, что я могу разыграть, используя same_kind
от uint до int, но не от int до uint, что имеет смысл:
> np.array([0, 2], dtype=np.uint8).astype(np.int64, casting='same_kind')
array([0, 2])
> np.array([0, 2], dtype=np.int8).astype(np.uint64, casting='same_kind')
TypeError: Cannot cast array from dtype('int8') to dtype('uint64') according to the rule 'same_kind'
Я хочу разыграть вот такпосле проверки границ значений в массиве (чтобы я знал, что не потеряю данные).Но если я сделаю casting='unsafe'
после проверки границ, я разрешу приведение, например, из.плавает (что я не хочу разрешать).Так как я могу разрешить int <=> кастинг uint, но запретить другие типы?