Hướng dẫn what is scalar array in python? - mảng vô hướng trong python là gì?
Python chỉ xác định một loại của một lớp dữ liệu cụ thể (chỉ có một loại số nguyên, một loại dấu phẩy động, v.v.). Điều này có thể thuận tiện trong các ứng dụng không cần phải quan tâm đến tất cả các cách dữ liệu có thể được biểu diễn trong máy tính. Đối với điện toán khoa học, tuy nhiên, thường cần kiểm soát nhiều hơn. Show
Trong Numpy, có 24 loại Python cơ bản mới để mô tả các loại vô hướng khác nhau. Các mô tả loại này chủ yếu dựa trên các loại có sẵn trong ngôn ngữ C mà Cpython được viết, với một số loại bổ sung tương thích với các loại Python. Scalar Array có các thuộc tính và phương thức tương tự như Các Scalar Array sống trong một hệ thống phân cấp (xem hình bên dưới) của các loại dữ liệu. Chúng có thể được phát hiện bằng cách sử dụng hệ thống phân cấp: ví dụ, >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)1 sẽ trả về đúng nếu Val là một trong những loại mảng linh hoạt ( >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)2, >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)3, >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)4). Hình: Phân cấp của các đối tượng loại đại diện cho các loại dữ liệu mảng. Không được hiển thị là hai loại số nguyên Tuy nhiên, vô hướng mảng là bất biến, vì vậy không có thuộc tính vô hướng nào được giải quyết. Các loại vô hướng tích hợp#Các loại vô hướng tích hợp được hiển thị dưới đây. Các tên giống C được liên kết với mã ký tự, được hiển thị trong các mô tả của chúng. Sử dụng các mã ký tự, tuy nhiên, không được khuyến khích. Một số loại vô hướng về cơ bản tương đương với các loại Python cơ bản và do đó kế thừa từ chúng cũng như từ loại vô hướng mảng chung:
Kiểu dữ liệu >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')7 rất giống với Python >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')8 nhưng không được kế thừa từ nó vì >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')8 của Python không cho phép bản thân được kế thừa và trên cấp độ C, kích thước của dữ liệu bool thực tế không giống như Python Boolean vô hướng. Cảnh báo Loại >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)7 không kế thừa từ >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)8 tích hợp theo Python 3, vì loại >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)8 không còn là loại số nguyên có chiều rộng cố định.not inherit from the >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)8 built-in under Python 3, because type >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)8 is no longer a fixed-width integer type. Mẹo Kiểu dữ liệu mặc định trong Numpy là >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)9. classnumpy.generic[source]# numpy.generic[source]# Lớp cơ sở cho các loại vô hướng numpy. Lớp từ đó hầu hết (tất cả?) Các loại vô hướng Numpy có nguồn gốc. Đối với tính nhất quán, phơi bày cùng một API với >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')0, mặc dù có nhiều thuộc tính do đó là chỉ có, chỉ có, hay hoàn toàn không liên quan. Đây là lớp mà người dùng được đề xuất mạnh mẽ nên lấy các loại vô hướng tùy chỉnh. classnumpy.number[source]# numpy.number[source]# Tóm tắt lớp cơ sở của tất cả các loại vô hướng số. Các loại số nguyên#classnumpy.integer[source]# numpy.integer[source]#Tóm tắt lớp cơ sở của tất cả các loại vô hướng số nguyên. Ghi chú Các loại số nguyên numpy phản ánh hành vi của các số nguyên C, và do đó có thể bị lỗi tràn.Overflow Errors. Các loại số nguyên đã ký#classnumpy.signedinteger[source]# numpy.signedinteger[source]#Tóm tắt lớp cơ sở của tất cả các loại vô hướng số nguyên đã ký. classnumpy.byte[source]#numpy.byte[source]#Loại số nguyên đã ký, tương thích với C >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')1.Mã ký tự >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')2Bí danh trên nền tảng này (Linux x86_64) >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')3: Số nguyên có chữ ký 8 bit ( >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')4 đến >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')5). classnumpy.short[source]# numpy.short[source]# Loại số nguyên đã ký, tương thích với C >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')6.Mã ký tự >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')7Bí danh trên nền tảng này (Linux x86_64) >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')3: Số nguyên có chữ ký 8 bit ( >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')4 đến >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')5). classnumpy.intc[source]# numpy.intc[source]# Loại số nguyên đã ký, tương thích với C >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')6.Mã ký tự >>> arr = np.array((1, 2), dtype=[('x', np.int8), ('y', np.int8)]) >>> arr[()] (1, 2) # looks like a tuple, but is `np.void`2Bí danh trên nền tảng này (Linux x86_64) >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')3: Số nguyên có chữ ký 8 bit ( >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')4 đến >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')5). classnumpy.int_[source]# numpy.int_[source]# Loại số nguyên đã ký, tương thích với C >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')6.Mã ký tự >>> arr = np.array((1, 2), dtype=[('x', np.int8), ('y', np.int8)]) >>> arr[()] (1, 2) # looks like a tuple, but is `np.void`8Bí danh trên nền tảng này (Linux x86_64) >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')3: Số nguyên có chữ ký 8 bit ( >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')4 đến >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')5). >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')3: Số nguyên có chữ ký 8 bit ( >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')4 đến >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')5). classnumpy.longlong[source]# numpy.longlong[source]# Loại số nguyên đã ký, tương thích với C >>> np.void(b'abcd') void(b'\x61\x62\x63\x64')6.Mã ký tự
Các loại số nguyên không dấu#classnumpy.unsignedinteger[source]# numpy.unsignedinteger[source]#Tóm tắt lớp cơ sở của tất cả các loại vô hướng số nguyên không dấu. classnumpy.ubyte[source]#numpy.ubyte[source]#Loại số nguyên không dấu, tương thích với C
Loại số nguyên không dấu, tương thích với C
Loại số nguyên không dấu, tương thích với C
Loại số nguyên không dấu, tương thích với C
Loại số nguyên không dấu, tương thích với C isinstance(val, np.generic) 3: Số nguyên không dấu 16 bit (ndarrays 9 đến isinstance(val, np.generic) 5).
Loại số nguyên không dấu, tương thích với C isinstance(val, np.generic)6.classnumpy.inexact[source]# numpy.inexact[source]#
Loại số nguyên không dấu, tương thích với C
>>> f16 = np.float16("0.1") >>> f32 = np.float32(f16) >>> f64 = np.float64(f32) >>> f16 == f32 == f64 True >>> f16, f32, f64 (0.1, 0.099975586, 0.0999755859375) Loại số nguyên đã ký, tương thích với C Mã ký tự >>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1) Các loại không chính xác#classnumpy.floating[source]#numpy.floating[source]#Lớp cơ sở trừu tượng của tất cả các loại vô hướng số với biểu diễn không chính xác (có khả năng) không chính xác của các giá trị trong phạm vi của nó, chẳng hạn như số điểm nổi. classnumpy.half[source]#numpy.half[source]#Ghi chú Mã ký tự
Loại số nguyên không dấu, tương thích với C
isinstance(val, np.generic) 1.
numpy.double(x=0, /)[source]#
>>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)02Loại số nguyên không dấu, tương thích với C isinstance(val, np.generic) 6.>>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)03 isinstance(val, np.generic) 8: Số nguyên không dấu 32 bit (ndarrays 9 đến True 0).Loại số nguyên không dấu, tương thích với C
>>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)06Loại số nguyên không dấu, tương thích với C isinstance(val, np.generic) 6.>>> f16 = np.float16("0.1") >>> f32 = np.float32("0.1") >>> f64 = np.float64("0.1") >>> f16 == f32 == f64 False >>> f16, f32, f64 (0.1, 0.1, 0.1)07Bí danh trên nền tảng này (Linux x86_64)
Loại số nguyên không dấu, tương thích với C classnumpy.complexfloating[source]#
numpy.complexfloating[source]# |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')08 | bí danh của >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')03 |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')09 | bí danh của >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')04 |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')10 | Các đối tượng vô hướng mảng có >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')05 là >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')06 (-1.000.000.0). Họ cũng chưa (chưa) có thuộc tính >>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')07. Mặt khác, chúng chia sẻ các thuộc tính giống như các mảng: |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')11 | Giá trị số nguyên của cờ. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')12 | Tuple của kích thước mảng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')13 | Tuple của byte bước trong mỗi chiều. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')14 | Số lượng kích thước mảng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')15 | Con trỏ để bắt đầu dữ liệu. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')16 | Số lượng các yếu tố trong gentype. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')17 | Độ dài của một phần tử trong byte. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')18 | Thuộc tính vô hướng giống hệt với thuộc tính mảng tương ứng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')19 | Nhận mảng dữ liệu-Descriptor. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')20 | Con trỏ để bắt đầu dữ liệu. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')21 | Số lượng các yếu tố trong gentype. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')22 | Độ dài của một phần tử trong byte. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')23 | Thuộc tính vô hướng giống hệt với thuộc tính mảng tương ứng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')24 | Nhận mảng dữ liệu-Descriptor. |
Indexing#
Phần thực của vô hướng.
Phần tưởng tượng của vô hướng.
Một cái nhìn 1-D của vô hướng.
Giao thức Array: Phía Python
Methods#
Giao thức mảng: structufunc, so that the error state used for ufuncs also carries over to the math on array scalars.
Ưu tiên mảng.
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')29 | sc .__ mảng_wrap __ (obj) trả về vô hướng từ mảng |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')24 | Nhận mảng dữ liệu-Descriptor. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')31 | Phần thực của vô hướng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')32 | Phần thực của vô hướng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')33 | Phần tưởng tượng của vô hướng. |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')34 | |
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')35 | Phần thực của vô hướng. |
Phần tưởng tượng của vô hướng.
>>> np.datetime64(10, 'Y') numpy.datetime64('1980') >>> np.datetime64('1980', 'Y') numpy.datetime64('1980') >>> np.datetime64(10, 'D') numpy.datetime64('1970-01-11')36(item, /) | Một cái nhìn 1-D của vô hướng. |
Giao thức Array: Phía Python
Giao thức mảng: structdtypes from the built-in scalar types): One way is to simply subclass the
>>> np.void(b'abcd') void(b'\x61\x62\x63\x64')0 and overwrite the methods of interest. This will work to a degree, but internally certain behaviors are fixed by the data type of the array. To fully customize the data type of an array you need to define a new data-type, and register it with NumPy. Such new types can only be defined in C, using the NumPy C-API.