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 để thể hiện dữ liệu văn bản, văn bản được đưa ra dưới dấu ngoặc kép. ví dụ: "ABCD" -
integer
- được sử dụng để biểu diễn số nguyên. ví dụ -1, -2, -3 -
float
- dùng để biểu diễn số thực. ví dụ 1,2, 42,42 -
boolean
- được sử dụng để biểu thị Đúng hoặc Sai. -
complex
- được sử 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à đề cập đến các kiểu dữ liệu có một ký tự, như i
cho số nguyên, u
cho số nguyên không dấu, v.v.
Dưới đây là danh sách tất cả các loại dữ liệu trong NumPy và các ký tự được sử dụng để biểu thị chúng.
-
i
- số nguyên -
b
- boolean -
u
- số nguyên không dấu -
f
- phao -
c
- phao phức tạp -
m
- đồng bằng thời gian -
M
- ngày giờ -
O
- đối tượng -
S
- chuỗi -
U
- chuỗi unicode -
V
- đoạn bộ nhớ cố đị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 gọi là dtype
trả về kiểu dữ liệu của mảng:
Ví dụ
Lấy 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)
Hãy tự mình thử »Ví dụ
Lấy kiểu dữ liệu của mảng chứa chuỗi:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
Hãy tự mình thử » Tạo mảng với kiểu dữ liệu được xác định
Chúng ta sử dụng hàm array()
để tạo mảng, hàm này có thể lấy một đối số tùy chọn: dtype
cho phép chúng ta xác định kiểu dữ liệu dự kiến của các thành phần mảng:
Ví 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)
Hãy tự mình thử » Đối với i
, u
, f
, S
và U
chúng ta cũng có thể xác định kích thước.
Ví dụ
Tạo một mảng có 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)
Hãy tự mình thử »Điều gì xảy ra nếu một giá trị không thể được chuyển đổi?
Nếu một loại được đưa ra trong đó các phần tử không thể được truyền thì NumPy sẽ đưa ra ValueError.
ValueError: Trong Python ValueError được nâng lên khi loại đối số được truyền cho hàm không mong muốn/không chính xác.
Ví dụ
Không thể chuyển đổi chuỗi không nguyên như 'a' thành số nguyên (sẽ gây ra lỗi):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
Hãy tự mình thử »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 phương thức astype()
.
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'
cho float, 'i'
cho 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
cho float và int
cho số nguyên.
Ví dụ
Thay đổi kiểu dữ liệu từ float sang số nguyên 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)
Hãy tự mình thử »Ví dụ
Thay đổi kiểu dữ liệu từ float sang số nguyên bằng cách sử dụng int
là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)
Hãy tự mình thử »Ví dụ
Thay đổi kiểu dữ liệu từ số nguyên sang boolean:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)
Hãy tự mình thử »