Spec-Zone.ru › NumPy 1.10

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

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

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

Имена типов в коде C более точно следуют соглашениям об именовании C. Имена Python-типов следуют соглашениям об именовании Python. Таким образом, NPY_FLOAT подбирает 32-битный float в C, но numpy.float_ в Python соответствует 64-битному double. Имена с указанием разрядности могут использоваться как в 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

Тип по умолчанию, используемый, когда тип dtype не указан явно, например, при вызове 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

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/c-api.dtype.html

Spec-Zone.ru

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