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

Trả về True nếu ép kiểu giữa scalar và kiểu dữ liệu xảy ra theo quy tắc casting trong Python

Phương thức numpy.can_cast() trả về True nếu scalar và kiểu dữ liệu có thể ép kiểu theo quy tắc casting. Tham số thứ nhất là scalar hoặc kiểu dữ liệu hoặc mảng để ép từ. Tham số thứ hai là kiểu dữ liệu để ép đến.

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

Trước tiên, nhập thư viện cần thiết:

import numpy as np

Kiểm tra xem scalar và kiểu dữ liệu có thể ép theo quy tắc casting:

print("Kiểm tra với phương thức can_cast() trong NumPy\n")
print("Kết quả...", np.can_cast(20, 'i1'))
print("Kết quả...", np.can_cast(280, 'i1'))
print("Kết quả...", np.can_cast(80, 'u1'))
print("Kết quả...", np.can_cast(300.7, np.float32))
print("Kết quả...", np.can_cast(120.6, np.float64))
print("Kết quả...", np.can_cast(7.2e100, np.float32))
print("Kết quả...", np.can_cast(6.5e100, np.float64))

Ví dụ hoàn chỉnh

import numpy as np

# numpy.can_cast() trả về True nếu scalar và kiểu dữ liệu có thể ép theo quy tắc casting.
# Tham số 1: scalar hoặc kiểu dữ liệu hoặc mảng để ép từ.
# Tham số 2: kiểu dữ liệu để ép đến.
print("Kiểm tra với phương thức can_cast() trong NumPy\n")
print("Kết quả...", np.can_cast(20, 'i1'))
print("Kết quả...", np.can_cast(280, 'i1'))
print("Kết quả...", np.can_cast(80, 'u1'))
print("Kết quả...", np.can_cast(300.7, np.float32))
print("Kết quả...", np.can_cast(120.6, np.float64))
print("Kết quả...", np.can_cast(7.2e100, np.float32))
print("Kết quả...", np.can_cast(6.5e100, np.float64))

Kết quả đầu ra

Kiểm tra với phương thức can_cast() trong NumPy
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... True
Kết quả... True
Kết quả... False
Kết quả... True

Giải thích:

  • 20 → int8 (i1): True (20 trong khoảng -128 đến 127)
  • 280 → int8 (i1): False (280 > 127, tràn số)
  • 80 → uint8 (u1): True (80 trong khoảng 0-255)
  • 300.7 → float32: True (float64 → float32 an toàn cho giá trị này)
  • 120.6 → float64: True (cùng kiểu)
  • 7.2e100 → float32: False (quá lớn, float32 max ~3.4e38)
  • 6.5e100 → float64: True (float64 max ~1.8e308)