Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra khả năng ép kiểu giữa các kiểu dữ liệu với quy tắc casting trong Python


Phương thức numpy.can_cast() trả về True nếu việc ép kiểu giữa các kiểu dữ liệu có thể xảy ra theo quy tắc casting. Tham số 1: kiểu dữ liệu hoặc mảng để ép từ. Tham số 2: kiểu dữ liệu để ép thành. Tham số 3 kiểm soát loại casting được phép: 'no', 'equiv', 'safe', 'same_kind', 'unsafe'.

  • 'no': không được ép kiểu nào.
  • 'equiv': chỉ cho phép thay đổi thứ tự byte.
  • 'safe': chỉ cho phép ép kiểu bảo toàn giá trị.
  • 'same_kind': cho phép ép an toàn hoặc trong cùng loại (ví dụ float64 sang float32).
  • 'unsafe': cho phép mọi chuyển đổi dữ liệu.

Các bước thực hiện

Nhập NumPy:

import numpy as np

Kiểm tra can_cast() với các quy tắc khác nhau:

print("Kiểm tra với can_cast() trong NumPy\n")

# Quy tắc 'no'
print("Kết quả...", np.can_cast('i8', 'i8', 'no'))      # True
print("Kết quả...", np.can_cast('i8', 'no'))    # False

# Quy tắc 'equiv'
print("Kết quả...", np.can_cast('i8', 'equiv')) # True
print("Kết quả...", np.can_cast('i8', 'equiv')) # False

# Quy tắc 'safe'
print("Kết quả...", np.can_cast('i4', 'i8', 'safe'))    # True
print("Kết quả...", np.can_cast('i8', 'i4', 'safe'))    # False

# Quy tắc 'same_kind'
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind')) # True
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind')) # True

Ví dụ hoàn chỉnh

import numpy as np

print("Kiểm tra với can_cast() trong NumPy\n")

print("Kết quả...", np.can_cast('i8', 'i8', 'no'))
print("Kết quả...", np.can_cast('i8', 'no'))
print("Kết quả...", np.can_cast('i8', 'equiv'))
print("Kết quả...", np.can_cast('i8', 'equiv'))
print("Kết quả...", np.can_cast('i4', 'i8', 'safe'))
print("Kết quả...", np.can_cast('i8', 'i4', 'safe'))
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind'))
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind'))

Kết quả đầu ra

Kiểm tra với can_cast() trong NumPy
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... True