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

Thay đổi kiểu dữ liệu NumPy array (dtype & astype)

NumPy array hỗ trợ nhiều kiểu dữ liệu. Sau khi tạo array, có thể thay đổi dtype bằng array.dtype (xem) và array.astype() (chuyển đổi).

1. Xem dtype hiện tại: array.dtype

import numpy as np

a = np.array([21.23, 13.1, 52.1, 8, 255])
print("Array:", a)
print("Dtype:", a.dtype)  # float64

Kết quả

Array: [ 21.23  13.1   52.1   8.   255. ]
Dtype: float64

2. Chuyển đổi dtype: array.astype()

Trả về array mới với dtype mong muốn (array gốc không thay đổi).

import numpy as np

a = np.array([21.23, 13.1, 52.1, 8, 255])
print("Gốc:", a, a.dtype)

# Chuyển sang int32 (cắt phần thập phân)
a_int = a.astype('int32')
print("int32:", a_int, a_int.dtype)

# Chuyển sang string
a_str = a.astype('str')
print("str:", a_str, a_str.dtype)

# Chuyển sang complex
a_cmplx = a.astype('complex64')
print("complex64:", a_cmplx, a_cmplx.dtype)

Kết quả

Gốc: [ 21.23  13.1   52.1   8.   255. ] float64
int32: [ 21  13  52   8 255] int32
str: ['21.23' '13.1' '52.1' '8.0' '255.0'] 

Các dtype NumPy phổ biến

Lưu ý

  • astype() trả về bản sao (copy), không sửa đổi in-place
  • Chuyển float → int: cắt phần thập phân (truncation), không làm tròn
  • Dùng np.round() trước nếu cần làm tròn
KiểuMô tả
int8, int16, int32, int64Số nguyên có dấu
uint8, uint16...Số nguyên không dấu
float16, float32, float64Số thực
complex64, complex128Số phức
boolBoolean
objectĐối tượng Python tùy ý
datetime64, timedelta64Ngày giờ