Các kiểu dữ liệu NumPy


Các kiểu dữ liệu trong Python

Theo mặc định, Python có các kiểu dữ liệu sau:

  • strings- được sử dụng để biểu diễn dữ liệu văn bản, văn bản được cho dưới dấu ngoặc kép. ví dụ: "ABCD"
  • integer- dùng để biểu diễn các số nguyên. ví dụ -1, -2, -3
  • float- dùng để biểu diễn các số thực. ví dụ: 1.2, 42.42
  • boolean- được sử dụng để biểu thị Đúng hoặc Sai.
  • complex- dùng để biểu diễn số phức. ví dụ: 1.0 + 2.0j, 1.5 + 2.5j

Các kiểu dữ liệu trong NumPy

NumPy có một số kiểu dữ liệu bổ sung và tham chiếu đến các kiểu dữ liệu có một ký tự, như iđối với số nguyên, uđối với số nguyên không dấu, v.v.

Dưới đây là danh sách tất cả các kiểu dữ liệu trong NumPy và các ký tự được sử dụng để đại diện cho chúng.

  • i- số nguyên
  • b- boolean
  • u- số nguyên không dấu
  • f- trôi nổi
  • c- phao phức tạp
  • m- hẹn giờ
  • M- ngày giờ
  • O- sự vật
  • S- chuỗi
  • U - chuỗi unicode
  • V - cố định phần bộ nhớ cho loại khác (void)

Kiểm tra kiểu dữ liệu của một mảng

Đối tượng mảng NumPy có một thuộc tính được gọi là dtype trả về kiểu dữ liệu của mảng:

Thí dụ

Nhận kiểu dữ liệu của một đối tượng mảng:

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr.dtype)

Thí dụ

Nhận kiểu dữ liệu của một mảng chứa các chuỗi:

import numpy as np

arr = np.array(['apple', 'banana', 'cherry'])

print(arr.dtype)


Tạo mảng với kiểu dữ liệu xác định

Chúng ta sử dụng array()hàm để tạo mảng, hàm này có thể nhận một đối số tùy chọn: dtype cho phép chúng ta xác định kiểu dữ liệu mong đợi của các phần tử mảng:

Thí dụ

Tạo một mảng với chuỗi kiểu dữ liệu:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='S')

print(arr)
print(arr.dtype)

Đối với , ichúng tôi cũng có thể xác định kích thước.ufSU

Thí dụ

Tạo một mảng với kiểu dữ liệu số nguyên 4 byte:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='i4')

print(arr)
print(arr.dtype)

Điều gì sẽ xảy ra nếu một giá trị không thể được chuyển đổi?

Nếu một kiểu được cung cấp trong đó các phần tử không thể được ép kiểu thì NumPy sẽ tạo ra một ValueError.

ValueError: Trong Python, ValueError được nâng lên khi loại đối số được truyền vào một hàm không mong muốn / không chính xác.

Thí dụ

Một chuỗi không phải số nguyên như 'a' không thể được chuyển đổi thành số nguyên (sẽ gây ra lỗi):

import numpy as np

arr = np.array(['a', '2', '3'], dtype='i')

Chuyển đổi kiểu dữ liệu trên mảng hiện có

Cách tốt nhất để thay đổi kiểu dữ liệu của một mảng hiện có là tạo một bản sao của mảng bằng astype()phương thức.

Hàm astype()tạo một bản sao của mảng và cho phép bạn chỉ định kiểu dữ liệu làm tham số.

Kiểu dữ liệu có thể được chỉ định bằng cách sử dụng một chuỗi, như 'f'đối với float, 'i'đối với số nguyên, v.v. hoặc bạn có thể sử dụng trực tiếp kiểu dữ liệu như floatđối với float và intđối với số nguyên.

Thí dụ

Thay đổi kiểu dữ liệu từ float thành integer bằng cách sử dụng 'i'làm giá trị tham số:

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype('i')

print(newarr)
print(newarr.dtype)

Thí dụ

Thay đổi kiểu dữ liệu từ float thành integer bằng cách sử dụng intlàm giá trị tham số:

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype(int)

print(newarr)
print(newarr.dtype)

Thí dụ

Thay đổi kiểu dữ liệu từ số nguyên thành boolean:

import numpy as np

arr = np.array([1, 0, 3])

newarr = arr.astype(bool)

print(newarr)
print(newarr.dtype)

Kiểm tra bản thân với các bài tập

Bài tập:

NumPy sử dụng một ký tự để đại diện cho mỗi kiểu dữ liệu sau đây, kiểu nào?

i = integer
 = boolean
 = unsigned integer
 = float
 = complex float
 = timedelta
 = datatime
 = object
 = string