Spec-Zone.ru › NumPy 1.14

API типов данных

Стандартный массив может содержать 24 различных типа данных (и имеет некоторую поддержку добавления собственных типов). Все эти типы данных имеют перечисляемый тип, перечисляемый символ типа и соответствующий объект типа массива Python (размещённый в иерархии). Также имеются стандартные определения C-типов, упрощающие работу с элементами заданного типа данных. Для числовых типов также имеются эквивалентные определения C-типов с шириной в битах и именованные номера типов, облегчающие выбор желаемой точности.

Предупреждение

Имена типов в коде C более точно следуют соглашениям именования языка C. Имена типов в Python следуют соглашениям Python. Таким образом, NPY_FLOAT выбирает 32-битное число с плавающей точкой в C, но numpy.float_ в Python соответствует 64-битному двойному числу. Имена с указанием ширины в битах могут использоваться как в Python, так и в C для большей ясности.

Перечисляемые типы

Существует список перечисляемых типов, определяющих 24 основных типа данных плюс некоторые полезные общие имена. Всякий раз, когда код требует номера типа, запрашивается один из этих перечисляемых типов. Все типы называются NPY_{NAME}:

NPY_BOOL

Значение перечисления для булевого типа, хранящегося как один байт. Он может принимать только значения 0 и 1.

NPY_BYTE
NPY_INT8

Значение перечисления для знакового целого типа 8 бит/1 байт.

NPY_SHORT
NPY_INT16

Значение перечисления для знакового целого типа 16 бит/2 байта.

NPY_INT
NPY_INT32

Значение перечисления для знакового целого типа 32 бит/4 байта.

NPY_LONG

Эквивалентно либо NPY_INT, либо NPY_LONGLONG, в зависимости от платформы.

NPY_LONGLONG
NPY_INT64

Значение перечисления для знакового целого типа 64 бит/8 байт.

NPY_UBYTE
NPY_UINT8

Значение перечисления для беззнакового целого типа 8 бит/1 байт.

NPY_USHORT
NPY_UINT16

Значение перечисления для беззнакового целого типа 16 бит/2 байта.

NPY_UINT
NPY_UINT32

Значение перечисления для беззнакового целого типа 32 бит/4 байта.

NPY_ULONG

Эквивалентно либо NPY_UINT, либо NPY_ULONGLONG, в зависимости от платформы.

NPY_ULONGLONG
NPY_UINT64

Значение перечисления для беззнакового целого типа 64 бит/8 байт.

NPY_HALF
NPY_FLOAT16

Значение перечисления для типа с плавающей запятой 16 бит/2 байта, совместимого со стандартом IEEE 754-2008.

NPY_FLOAT
NPY_FLOAT32

Значение перечисления для типа с плавающей запятой 32 бит/4 байта, совместимого со стандартом IEEE 754.

NPY_DOUBLE
NPY_FLOAT64

Значение перечисления для типа с плавающей запятой 64 бит/8 байт, совместимого со стандартом IEEE 754.

NPY_LONGDOUBLE

Значение перечисления для типа с плавающей запятой платформенно-зависимого типа, по крайней мере, столь же большого, как NPY_DOUBLE, но на многих платформах большего размера.

NPY_CFLOAT
NPY_COMPLEX64

Значение перечисления для комплексного типа 64 бит/8 байт, состоящего из двух значений NPY_FLOAT.

NPY_CDOUBLE
NPY_COMPLEX128

Значение перечисления для комплексного типа 128 бит/16 байт, состоящего из двух значений NPY_DOUBLE.

NPY_CLONGDOUBLE

Значение перечисления для платформенно-зависимого комплексного типа с плавающей запятой, состоящего из двух значений NPY_LONGDOUBLE.

NPY_DATETIME

Значение перечисления для типа данных, хранящего даты или даты и время с точностью, основанной на выбираемых единицах даты или времени.

NPY_TIMEDELTA

Значение перечисления для типа данных, хранящего длительность времени в целых числах выбираемых единиц даты или времени.

NPY_STRING

Значение перечисления для ASCII-строк заданного размера. Строки имеют фиксированный максимальный размер в данном массиве.

NPY_UNICODE

Значение перечисления для UCS4-строк заданного размера. Строки имеют фиксированный максимальный размер в данном массиве.

NPY_OBJECT

Значение перечисления для ссылок на произвольные объекты Python.

NPY_VOID

В основном используется для хранения структурных типов данных, но может содержать произвольные двоичные данные.

Некоторые полезные псевдонимы вышеперечисленных типов:

NPY_INTP

Значение перечисления для знакового целого типа, размер которого совпадает с размером указателя (void *). Этот тип используется для всех массивов индексов.

NPY_UINTP

Значение перечисления для беззнакового целого типа, размер которого совпадает с размером указателя (void *).

NPY_MASK

Значение перечисления для типа, используемого для масок, например, с флагом итератора NPY_ITER_ARRAYMASK. Это эквивалентно NPY_UINT8.

NPY_DEFAULT_TYPE

Тип по умолчанию, используемый, когда тип данных явно не указан, например, при вызове np.zero(shape). Эквивалентно NPY_DOUBLE.

Другие полезные связанные константы:

NPY_NTYPES

Общее количество встроенных типов NumPy. Перечисление охватывает диапазон от 0 до NPY_NTYPES-1.

NPY_NOTYPE

Сигнальное значение, гарантированно не являющееся допустимым номером перечисления типа.

NPY_USERDEF

Начало номеров типов, используемых для пользовательских типов данных.

Различные символы, указывающие на определенные типы, также являются частью перечисляемого списка. Ссылки на символы типов (если они вообще нужны) всегда должны использовать эти перечисления. Их формат — NPY_{NAME}LTR, где {NAME} может быть

BOOL, BYTE, UBYTE, SHORT, USHORT, INT, UINT, LONG, ULONG, LONGLONG, ULONGLONG, HALF, FLOAT, DOUBLE, LONGDOUBLE, CFLOAT, CDOUBLE, CLONGDOUBLE, DATETIME, TIMEDELTA, OBJECT, STRING, VOID

INTP, UINTP

GENBOOL, SIGNED, UNSIGNED, FLOATING, COMPLEX

Последняя группа {NAME}s соответствует буквам, используемым в спецификации строкового представления типа интерфейса массива.

Определения

Максимальные и минимальные значения для целых чисел

NPY_MAX_INT{bits}
NPY_MAX_UINT{bits}
NPY_MIN_INT{bits}

Они определены для {bits} = 8, 16, 32, 64, 128 и 256 и предоставляют максимальное (минимальное) значение соответствующего (беззнакового) целого типа. Примечание: фактический целочисленный тип может быть недоступен на всех платформах (например, 128-битные и 256-битные целые числа встречаются редко).

NPY_MIN_{type}

Это определено для {type} = BYTE, SHORT, INT, LONG, LONGLONG, INTP

NPY_MAX_{type}

Это определено для всех определенных для {type} = BYTE, UBYTE, SHORT, USHORT, INT, UINT, LONG, ULONG, LONGLONG, ULONGLONG, INTP, UINTP

Количество битов в типах данных

Все NPY_SIZEOF_{CTYPE} константы имеют соответствующие NPY_BITSOF_{CTYPE} константы. NPY_BITSOF_{CTYPE} константы предоставляют количество битов в типе данных. В частности, доступные {CTYPE}s:

BOOL, CHAR, SHORT, INT, LONG, LONGLONG, FLOAT, DOUBLE, LONGDOUBLE

Справочные значения ширины в битах для перечисляемых номеров типов

Все числовые типы данных (целые, с плавающей точкой и комплексные) имеют константы, определённые как конкретные числа перечислимого типа. Точный тип перечисления, к которому относится тип с заданной разрядностью, зависит от платформы. В частности, доступные константы — это PyArray_{NAME}{BITS} , где {NAME} — это INT, UINT, FLOAT, COMPLEX, а {BITS} может быть 8, 16, 32, 64, 80, 96, 128, 160, 192, 256 и 512. Очевидно, что не все разрядности доступны на всех платформах для всех типов числовых данных. Обычно доступны целые числа с разрядностью 8, 16, 32 и 64 бита; числа с плавающей точкой с разрядностью 32 и 64 бита; и комплексные типы с разрядностью 64 и 128 бит.

Целое число, способное хранить указатель

Константы NPY_INTP и NPY_UINTP относятся к перечислимому целому типу, достаточным для хранения указателя на данной платформе. Массивы индексов всегда должны быть преобразованы в NPY_INTP, так как размер массива имеет тип npy_intp.

Имена типов C

Для каждого числового типа данных и типа данных bool существуют стандартные типы переменных. Некоторые из них уже доступны в спецификации C. Вы можете создавать переменные в расширенном коде с этими типами.

Булево

npy_bool

unsigned char; Также определены константы NPY_FALSE и NPY_TRUE.

(Не)знаковые целые числа

Беззнаковые версии целых чисел могут быть определены путём добавления префикса 'u' к имени целого числа.

npy_(u)byte

(беззнаковый) char

npy_(u)short

(беззнаковый) short

npy_(u)int

(беззнаковый) int

npy_(u)long

(беззнаковый) long int

npy_(u)longlong

(беззнаковый long long int)

npy_(u)intp

(беззнаковый) Py_intptr_t (целое число, размер которого равен размеру указателя на данной платформе).

(Комплексное) число с плавающей точкой

npy_(c)float

float

npy_(c)double

double

npy_(c)longdouble

long double

Комплексные типы — это структуры с членами .real и .imag (в указанном порядке).

Имена с разрядностью

Также существуют определения типов для целых чисел со знаком, целых чисел без знака, чисел с плавающей точкой и комплексных чисел с плавающей точкой с заданной разрядностью. Доступные имена типов:

npy_int{bits}, npy_uint{bits}, npy_float{bits}, и npy_complex{bits}

где {bits} — это количество бит в типе и может быть 8, 16, 32, 64, 128 и 256 для целых типов; 16, 32, 64, 80, 96, 128 и 256 для типов с плавающей точкой; и 32, 64, 128, 160, 192 и 512 для комплексных типов. Доступные разрядности зависят от платформы. Жирным шрифтом выделены разрядности, которые обычно доступны на всех платформах.

Форматирование printf

Для помощи в выводе определены следующие строки в качестве правильных спецификаторов формата в командах printf и родственных командах.

NPY_LONGLONG_FMT, NPY_ULONGLONG_FMT, NPY_INTP_FMT, NPY_UINTP_FMT, NPY_LONGDOUBLE_FMT

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/c-api.dtype.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API