Skip to Content

Kiểu dữ liệu

NumPy hỗ trợ nhiều kiểu dữ liệu số đa dạng hơn nhiều so với Python. Các kiểu dữ liệu số của NumPy là các thể hiện của đối tượng numpy.dtype (data-type), mỗi đối tượng có những đặc điểm riêng biệt.

Kiểu mảng và chuyển đổi giữa các kiểu

Các kiểu dữ liệu số trong NumPy là các thể hiện của đối tượng numpy.dtype.

import numpy as np z = np.arange(3, dtype=np.uint8) # array([0, 1, 2], dtype=uint8)

Để xác định kiểu của một mảng, hãy nhìn vào thuộc tính dtype:

z.dtype # dtype('uint8')

Để chuyển đổi kiểu của một mảng, hãy sử dụng phương thức .astype():

z.astype(np.float64) # array([0., 1., 2.])

Các kiểu dữ liệu số

Có 5 kiểu số cơ bản đại diện cho boolean (bool), số nguyên (int), số nguyên không dấu (uint), số thực dấu phẩy động (float) và số phức (complex).

  • bool: Boolean (True hoặc False) được lưu trữ dưới dạng một byte
  • int: Số nguyên nền tảng (thường là int32 hoặc int64)
  • int8, int16, int32, int64: Số nguyên với kích thước bit cụ thể
  • uint8, uint16, uint32, uint64: Số nguyên không dấu
  • float16, float32, float64: Số thực dấu phẩy động
  • complex64, complex128: Số phức

Kiểu dữ liệu cho Chuỗi và Byte

NumPy cũng hỗ trợ lưu trữ các chuỗi unicode thông qua kiểu dữ liệu numpy.str_ (mã ký tự U), các chuỗi byte kết thúc bằng null thông qua numpy.bytes_ (mã ký tự S), và các chuỗi byte tùy ý thông qua numpy.void (mã ký tự V).

np.array(["hello", "world!"]) # array(['hello', 'world!'], dtype='<U6')

Lỗi tràn số (Overflow errors)

Kích thước cố định của các kiểu số trong NumPy có thể gây ra lỗi tràn số khi một giá trị yêu cầu nhiều bộ nhớ hơn mức khả dụng trong kiểu dữ liệu đó.

np.power(100, 9, dtype=np.int64) # 1000000000000000000 np.power(100, 9, dtype=np.int32) # -1486618624 (Sai do tràn số)
Last updated on