Hướng dẫn what does int32 mean in python? - int32 có nghĩa là gì trong python?

Các loại mảng và chuyển đổi giữa các loại#

Numpy hỗ trợ nhiều loại số lớn hơn nhiều so với Python. Phần này cho thấy có sẵn và cách sửa đổi loại dữ liệu của mảng.

Các loại nguyên thủy được hỗ trợ được gắn chặt với các loại trong C:

Loại numpy

Loại c

Sự mô tả

numpy.bool_

bool

Boolean (đúng hoặc sai) được lưu trữ dưới dạng byte

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
0

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
1

Platform-defined

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
2

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
3

Platform-defined

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
4

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
5

Platform-defined

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
6

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
7

Platform-defined

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
8

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
9

Platform-defined

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
0

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
1

Platform-defined

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
2

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
3

Platform-defined

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
4

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
5

Platform-defined

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
6

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
7

Platform-defined

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
8

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)
9

Platform-defined

>>> z.dtype
dtype('uint8')
0 /
>>> z.dtype
dtype('uint8')
1

Nửa chính xác phao: Bit ký, số mũ 5 bit, 10 bit Mantissa

>>> z.dtype
dtype('uint8')
2

>>> z.dtype
dtype('uint8')
3

Phao chính độ chính xác được xác định bởi nền tảng: Thông thường bit dấu hiệu, số mũ 8 bit, 23 bit Mantissa

>>> z.dtype
dtype('uint8')
4

>>> z.dtype
dtype('uint8')
5

Phao chính độ chính xác được xác định bởi nền tảng: Thông thường bit dấu, số mũ 11 bit, 52 bit mantissa.

>>> z.dtype
dtype('uint8')
6

>>> z.dtype
dtype('uint8')
7

Nền tảng được xác định bởi phao chính xác mở rộng

>>> z.dtype
dtype('uint8')
8

>>> z.dtype
dtype('uint8')
9

Số phức, được biểu thị bằng hai phao chính xác đơn (các thành phần thực và tưởng tượng)

>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
0

>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
1

Số phức, được biểu thị bằng hai phao chính xác kép (các thành phần thực và tưởng tượng).

>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
2

>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
3

Số phức, được biểu thị bằng hai phao chính xác mở rộng (các thành phần thực và tưởng tượng).

Vì nhiều trong số này có các định nghĩa phụ thuộc vào nền tảng, một tập hợp các bí danh có kích thước cố định được cung cấp (xem bí danh có kích thước).Sized aliases).

Các loại số Numpy là các trường hợp của các đối tượng

>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
4 (loại dữ liệu), mỗi đối tượng có các đặc điểm duy nhất. Khi bạn đã nhập Numpy bằng cách sử dụng
>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
5, DTYPE có sẵn là
>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
6,
>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
7, v.v.

Các loại nâng cao, không được liệt kê ở trên, được khám phá trong phần các mảng có cấu trúc.Structured arrays.

Có 5 loại số cơ bản đại diện cho booleans (bool), số nguyên (int), số nguyên không dấu (UINT) điểm nổi (float) và phức tạp. Những người có số trong tên của họ cho biết tính bit của loại (nghĩa là cần bao nhiêu bit để biểu diễn một giá trị duy nhất trong bộ nhớ). Một số loại, chẳng hạn như

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
9 và
>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
9, có các tính năng khác nhau, phụ thuộc vào các nền tảng (ví dụ: máy 32 bit so với 64 bit). Điều này nên được tính đến khi giao tiếp với mã cấp thấp (chẳng hạn như C hoặc Fortran) nơi giải quyết bộ nhớ thô.

Các loại dữ liệu có thể được sử dụng làm chức năng để chuyển đổi số Python thành các vô hướng mảng (xem phần Vô vô hướng Array để giải thích), Trình tự Python của các số thành các mảng thuộc loại đó hoặc là đối số cho từ khóa DTYPE mà nhiều chức năng hoặc phương thức vô hiệu hóa chấp nhận . Vài ví dụ:

>>> x = np.float32(1.0)
>>> x
1.0
>>> y = np.int_([1,2,4])
>>> y
array([1, 2, 4])
>>> z = np.arange(3, dtype=np.uint8)
>>> z
array([0, 1, 2], dtype=uint8)

Các loại mảng cũng có thể được gọi bằng mã ký tự, chủ yếu là để giữ lại khả năng tương thích ngược với các gói cũ như số. Một số tài liệu vẫn có thể đề cập đến những điều này, ví dụ: ví dụ:

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)

Chúng tôi khuyên bạn nên sử dụng các đối tượng DTYPE thay thế.

Để chuyển đổi loại mảng, hãy sử dụng phương thức .Arype () (ưu tiên) hoặc loại chính là một hàm. Ví dụ:

>>> z.astype(float)                 
array([0.,  1.,  2.])
>>> np.int8(z)
array([0, 1, 2], dtype=int8)

Lưu ý rằng, ở trên, chúng tôi sử dụng đối tượng Float Python làm DTYPE. Numpy biết rằng

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
9 đề cập đến
>>> np.power(100, 8, dtype=np.int64)
10000000000000000
>>> np.power(100, 8, dtype=np.int32)
1874919424
1, bool có nghĩa là
>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False
6, rằng
>>> z.dtype
dtype('uint8')
3 là
>>> np.power(100, 8, dtype=np.int64)
10000000000000000
>>> np.power(100, 8, dtype=np.int32)
1874919424
5 và
>>> np.power(100, 8, dtype=np.int64)
10000000000000000
>>> np.power(100, 8, dtype=np.int32)
1874919424
6 là
>>> np.power(100, 8, dtype=np.int64)
10000000000000000
>>> np.power(100, 8, dtype=np.int32)
1874919424
7. Các loại dữ liệu khác không có tương đương Python.

Để xác định loại mảng, hãy xem thuộc tính DTYPE:

>>> z.dtype
dtype('uint8')

Các đối tượng DTYPE cũng chứa thông tin về loại, chẳng hạn như chiều rộng bit và thứ tự byte của nó. Kiểu dữ liệu cũng có thể được sử dụng gián tiếp cho các thuộc tính truy vấn của loại, chẳng hạn như liệu nó có phải là một số nguyên:

>>> d = np.dtype(int)
>>> d 
dtype('int32')

>>> np.issubdtype(d, np.integer)
True

>>> np.issubdtype(d, np.floating)
False

Mảng vô hướng#

Numpy thường trả về các phần tử của các mảng dưới dạng vô hướng mảng (một vô hướng với DTYPE liên quan). Scalar Array khác với vô hướng Python, nhưng phần lớn chúng có thể được sử dụng thay thế cho nhau (ngoại lệ chính là cho các phiên bản của Python cũ hơn V2.x, trong đó vô hướng mảng số nguyên không thể hoạt động như các chỉ số cho danh sách và bộ dữ liệu). Có một số ngoại lệ, chẳng hạn như khi mã yêu cầu các thuộc tính rất cụ thể của vô hướng hoặc khi nó kiểm tra cụ thể liệu giá trị có phải là vô hướng Python hay không. Nói chung, các vấn đề dễ dàng được khắc phục bằng cách chuyển đổi rõ ràng vô hướng mảng thành vô hướng Python, sử dụng hàm loại python tương ứng (ví dụ:

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
9,
>>> z.dtype
dtype('uint8')
3,
>>> np.power(100, 8, dtype=np.int64)
10000000000000000
>>> np.power(100, 8, dtype=np.int32)
1874919424
6,
>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
1,
>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
2).

Ưu điểm chính của việc sử dụng vô hướng mảng là chúng bảo tồn loại mảng (Python có thể không có loại vô hướng phù hợp có sẵn, ví dụ:

>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
3). Do đó, việc sử dụng vô hướng mảng đảm bảo hành vi giống hệt nhau giữa các mảng và vô hướng, không phân biệt liệu giá trị có nằm trong một mảng hay không. Vô hướng Numpy cũng có nhiều mảng phương thức tương tự.

Lỗi tràn#

Kích thước cố định của các loại số numpy có thể gây ra lỗi tràn khi giá trị yêu cầu nhiều bộ nhớ hơn có sẵn trong kiểu dữ liệu. Ví dụ,

>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
4 đánh giá chính xác
>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
5 cho số nguyên 64 bit, nhưng cho 1874919424 (không chính xác) cho số nguyên 32 bit.

>>> np.power(100, 8, dtype=np.int64)
10000000000000000
>>> np.power(100, 8, dtype=np.int32)
1874919424

Hành vi của các loại số nguyên numpy và python khác nhau đáng kể đối với tràn số nguyên và có thể gây nhầm lẫn cho người dùng mong đợi các số nguyên numpy sẽ hoạt động tương tự như Python tựa

>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
9. Không giống như Numpy, kích thước của Python từ
>>> np.array([1, 2, 3], dtype='f')
array([1.,  2.,  3.], dtype=float32)
9 là linh hoạt. Điều này có nghĩa là số nguyên python có thể mở rộng để chứa bất kỳ số nguyên nào và sẽ không tràn.

Numpy cung cấp

>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
8 và
>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
9 để xác minh các giá trị tối thiểu hoặc tối đa của các giá trị số nguyên và dấu phẩy động tương ứng

>>> np.iinfo(int) # Bounds of the default integer on this system.
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)
>>> np.iinfo(np.int32) # Bounds of a 32-bit integer
iinfo(min=-2147483648, max=2147483647, dtype=int32)
>>> np.iinfo(np.int64) # Bounds of a 64-bit integer
iinfo(min=-9223372036854775808, max=9223372036854775807, dtype=int64)

Nếu số nguyên 64 bit vẫn còn quá nhỏ, kết quả có thể được chuyển đến số điểm nổi. Số điểm nổi cung cấp một phạm vi giá trị lớn hơn, nhưng không chính xác, có thể.

>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200

Độ chính xác mở rộng#

Số điểm nổi Python, thường là số điểm nổi 64 bit, gần như tương đương với

>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
0. Trong một số tình huống bất thường, có thể hữu ích khi sử dụng các số điểm nổi với độ chính xác hơn. Liệu điều này có thể xảy ra trong Numpy hay không phụ thuộc vào phần cứng và môi trường phát triển: cụ thể, các máy x86 cung cấp điểm nổi phần cứng với độ chính xác 80 bit và trong khi hầu hết các trình biên dịch C cung cấp loại này dưới dạng loại
>>> z.dtype
dtype('uint8')
7, MSVC (tiêu chuẩn cho các bản dựng Windows) làm cho
>>> z.dtype
dtype('uint8')
7 giống hệt với
>>> z.dtype
dtype('uint8')
5 (64 bit). Numpy làm cho trình biên dịch từ
>>> z.dtype
dtype('uint8')
7 có sẵn là
>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
5 (và
>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
6 cho các số phức). Bạn có thể tìm hiểu những gì Numpy của bạn cung cấp với
>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
7.

Numpy không cung cấp một DTYPE với độ chính xác cao hơn so với Ciên

>>> z.dtype
dtype('uint8')
7; Cụ thể, kiểu dữ liệu chính xác của IEEE Quad 128 bit (Fortran,
>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
9) không có sẵn.

Để căn chỉnh bộ nhớ hiệu quả,

>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
5 thường được lưu trữ được đệm bằng các bit bằng không, đến 96 hoặc 128 bit. Hiệu quả hơn phụ thuộc vào môi trường phần cứng và phát triển; Thông thường trên các hệ thống 32 bit, chúng được đệm đến 96 bit, trong khi trên các hệ thống 64 bit, chúng thường được đệm đến 128 bit.
>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
5 được đệm vào mặc định hệ thống; numpy.bool_2 và numpy.bool_3 được cung cấp cho người dùng muốn đệm cụ thể. Mặc dù có tên, numpy.bool_2 và numpy.bool_3 chỉ cung cấp độ chính xác nhiều như
>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
5, nghĩa là 80 bit trên hầu hết các máy x86 và 64 bit trong các bản dựng Windows tiêu chuẩn.

Được cảnh báo rằng ngay cả khi

>>> np.power(100, 100, dtype=np.int64) # Incorrect even with 64-bit int
0
>>> np.power(100, 100, dtype=np.float64)
1e+200
5 cung cấp độ chính xác hơn Python
>>> z.dtype
dtype('uint8')
3, thì rất dễ dàng để mất độ chính xác hơn đó, vì Python thường buộc các giá trị phải vượt qua
>>> z.dtype
dtype('uint8')
3. Ví dụ, toán tử định dạng bool0 yêu cầu các đối số của nó được chuyển đổi thành các loại Python tiêu chuẩn và do đó không thể bảo tồn độ chính xác mở rộng ngay cả khi nhiều vị trí thập phân được yêu cầu. Nó có thể hữu ích để kiểm tra mã của bạn với giá trị bool1.

Int32 là gì trong Python?

Int32 là một số nguyên trong khoảng -2^31 và 2^31 - 1. Phạm vi này yêu cầu 32 bit bộ nhớ và do đó tên. Numpy cho phép một loạt các loại dữ liệu không có trong Python thông thường, loại INT có thể thực sự, thực sự lớn. Hơn nữa, không giống như danh sách của Python, tất cả các yếu tố của một mảng numpy phải cùng loại.

Int64 có nghĩa là gì trong Python?

Bạn sẽ thường thấy loại dữ liệu Int64 trong Python là viết tắt của số nguyên 64 bit.64 đề cập đến bộ nhớ được phân bổ để lưu trữ dữ liệu trong mỗi ô có hiệu quả liên quan đến số lượng nó có thể lưu trữ trong mỗi ô.Phân bổ không gian trước thời hạn cho phép máy tính tối ưu hóa hiệu quả lưu trữ và xử lý.64 bit integer. The 64 refers to the memory allocated to store data in each cell which effectively relates to how many digits it can store in each “cell”. Allocating space ahead of time allows computers to optimize storage and processing efficiency.

Loại int trong Python là gì?

Số nguyên - Giá trị này được biểu thị bằng lớp int.it chứa các số toàn bộ dương hoặc âm (không có phân số hoặc thập phân).Trong Python, không có giới hạn về giá trị số nguyên có thể là bao lâu.Float - Giá trị này được biểu thị bằng lớp float.Đó là một con số thực với biểu diễn điểm nổi.This value is represented by int class. It contains positive or negative whole numbers (without fraction or decimal). In Python there is no limit to how long an integer value can be. Float – This value is represented by float class. It is a real number with floating point representation.

Int16 có nghĩa là gì trong Python?

Các loại dữ liệu Numpy bao gồm một loạt các loại số nguyên có tên cho kích thước của chúng, vì vậy, ví dụ:Int16 là một số nguyên 16 bit, với 216 giá trị có thể.Các loại số nguyên cũng có thể được ký hoặc không dấu.a 16-bit integer, with 216 possible values. Integer types can also be signed or unsigned.