Spec-Zone.ru › NumPy 1.18

Глоссарий

along an axis

Оси определены для массивов с более чем одним измерением. Двумерный массив имеет две соответствующие оси: первая идёт по вертикали вниз по строкам (ось 0), а вторая — по горизонтали по столбцам (ось 1).

Многие операции могут выполняться вдоль одной из этих осей. Например, мы можем просуммировать каждую строку массива, в этом случае мы работаем вдоль столбцов, или оси 1:

>>> x = np.arange(12).reshape((3,4))

>>> x
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

>>> x.sum(axis=1)
array([ 6, 22, 38])
array

Однородный контейнер числовых элементов. Каждый элемент массива занимает фиксированный объём памяти (следовательно, однородный) и может быть числовым элементом одного типа (например, float, int или complex) или комбинацией (например, (float, int, float)). Каждый массив имеет связанный тип данных (или dtype), который описывает числовой тип его элементов:

>>> x = np.array([1, 2, 3], float)

>>> x
array([ 1.,  2.,  3.])

>>> x.dtype # floating point number, 64 bits of memory per element
dtype('float64')


# More complicated data type: each array element is a combination of
# and integer and a floating point number
>>> np.array([(1, 2.0), (3, 4.0)], dtype=[('x', int), ('y', float)])
array([(1, 2.0), (3, 4.0)],
      dtype=[('x', '<i4'), ('y', '<f8')])

Быстрые поэлементные операции, называемые ufunc, выполняются над массивами.

array_like

Любая последовательность, которая может быть интерпретирована как ndarray. Это включает вложенные списки, кортежи, скаляры и существующие массивы.

attribute

Свойство объекта, к которому можно получить доступ, используя obj.attribute, например, shape — это атрибут массива:

>>> x = np.array([1, 2, 3])
>>> x.shape
(3,)
big-endian

При хранении многобайтового значения в памяти в виде последовательности байтов, последовательность адресов/отправляет/хранит наиболее значимый байт первым (самый низкий адрес) и наименее значимый байт последним (самый высокий адрес). Распространено в микропроцессорах и используется для передачи данных по сетевым протоколам.

BLAS

Базовые подпрограммы линейной алгебры

broadcast

NumPy может выполнять операции над массивами, формы которых не совпадают:

>>> x = np.array([1, 2])
>>> y = np.array([[3], [4]])

>>> x
array([1, 2])

>>> y
array([[3],
       [4]])

>>> x + y
array([[4, 5],
       [5, 6]])

См. numpy.doc.broadcasting для получения дополнительной информации.

C order

См. row-major

column-major

Способ представления элементов N-мерного массива в одномерной памяти компьютера. В столбце-главный порядок самый левый индекс «меняется быстрее всего»: например, массив:

[[1, 2, 3],
 [4, 5, 6]]

представлен в порядке по столбцам как:

[1, 4, 2, 5, 3, 6]

Порядок по столбцам также известен как порядок Fortran, так как язык программирования Fortran использует его.

decorator

Оператор, преобразующий функцию. Например, декоратор log может быть определён для вывода отладочной информации при выполнении функции:

>>> def log(f):
...     def new_logging_func(*args, **kwargs):
...         print("Logging call with parameters:", args, kwargs)
...         return f(*args, **kwargs)
...
...     return new_logging_func

Теперь, когда мы определяем функцию, мы можем «украсить» её, используя log:

>>> @log
... def add(a, b):
...     return a + b

Вызов add тогда даёт:

>>> add(1, 2)
Logging call with parameters: (1, 2) {}
3
dictionary

Подобно словарю языка, который предоставляет отображение между словами и их описаниями, Python словарь — это отображение между двумя объектами:

>>> x = {1: 'one', 'two': [1, 2]}

Здесь, x — это словарь, сопоставляющий ключи со значениями, в данном случае целое число 1 со строкой «one», и строку «two» со списком [1, 2]. К значениям можно получить доступ, используя соответствующие ключи:

>>> x[1]
'one'

>>> x['two']
[1, 2]

Обратите внимание, что словари не хранятся в определённом порядке. Также большинство изменяемых (см. неизменяемые ниже) объектов, таких как списки, не могут быть использованы в качестве ключей.

Для получения дополнительной информации о словарях, прочитайте руководство по Python.

field

В структурированном типе данных каждый подтип называется field. У field есть имя (строка), тип (любой допустимый dtype) и необязательный title. См. Объекты типа данных (dtype)

Fortran order

См. column-major

flattened

Сведён к одномерному массиву. Смотрите numpy.ndarray.flatten для подробностей.

homogenous

Описывает блок памяти, состоящий из блоков, каждый блок состоит из элементов и имеет одинаковый размер, и блоки интерпретируются точно одинаково. В самом простом случае каждый блок содержит один элемент, например int32 или float64.

immutable

Объект, который нельзя изменить после выполнения, называется неизменяемым. Два распространённых примера — строки и кортежи.

instance

Определение класса даёт шаблон для построения объекта:

>>> class House(object):
...     wall_colour = 'white'

Однако, мы должны построить дом, прежде чем он существует:

>>> h = House() # build a house

Теперь, h называется экземпляром House. Таким образом, экземпляр — это конкретная реализация класса.

iterable

Последовательность, которая позволяет «проходить» (итерировать) по элементам, обычно с помощью цикла, такого как:

>>> x = [1, 2, 3]
>>> [item**2 for item in x]
[1, 4, 9]
It is often used in combination with enumerate::
>>> keys = ['a','b','c']
>>> for n, k in enumerate(keys):
...     print("Key %d: %s" % (n, k))
...
Key 0: a
Key 1: b
Key 2: c
itemsize

Размер элемента dtype в байтах.

list

Контейнер Python, который может содержать любое количество объектов или элементов. Элементы не обязательно должны быть одного типа, и могут быть даже сами списки:

>>> x = [2, 2.0, "two", [2, 2.0]]

Список x содержит 4 элемента, к каждому из которых можно получить доступ индивидуально:

>>> x[2] # the string 'two'
'two'

>>> x[3] # a list, containing an integer 2 and a float 2.0
[2, 2.0]

Также можно выбрать несколько элементов одновременно, используя срезы:

>>> x[0:2] # or, equivalently, x[:2]
[2, 2.0]

В коде массивы часто удобно выражать как вложенные списки:

>>> np.array([[1, 2], [3, 4]])
array([[1, 2],
       [3, 4]])

Для получения дополнительной информации прочитайте раздел о списках в руководстве по Python. Для типа сопоставления (ключ-значение) см. словарь.

little-endian

При хранении многобайтового значения в памяти в виде последовательности байтов, последовательность адресов/отправляет/хранит наименее значимый байт первым (самый низкий адрес) и наиболее значимый байт последним (самый высокий адрес). Распространено в процессорах x86.

mask

Булевый массив, используемый для выбора только определённых элементов для операции:

>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])

>>> mask = (x > 2)
>>> mask
array([False, False, False, True,  True])

>>> x[mask] = -1
>>> x
array([ 0,  1,  2,  -1, -1])
masked array

Массив, который подавляет значения, указанные маской:

>>> x = np.ma.masked_array([np.nan, 2, np.nan], [True, False, True])
>>> x
masked_array(data = [-- 2.0 --],
             mask = [ True False  True],
       fill_value = 1e+20)

>>> x + [1, 2, 3]
masked_array(data = [-- 4.0 --],
             mask = [ True False  True],
       fill_value = 1e+20)

Маскированные массивы часто используются при работе с массивами, содержащими отсутствующие или недопустимые записи.

matrix

Двумерный ndarray, сохраняющий свою двумерность во время операций. У него определены некоторые специальные операции, такие как * (умножение матриц) и ** (степень матрицы):

>>> x = np.mat([[1, 2], [3, 4]])
>>> x
matrix([[1, 2],
        [3, 4]])

>>> x**2
matrix([[ 7, 10],
      [15, 22]])
method

Функция, связанная с объектом. Например, каждый ndarray имеет метод, называемый repeat:

>>> x = np.array([1, 2, 3])
>>> x.repeat(2)
array([1, 1, 2, 2, 3, 3])
ndarray

См. массив.

record array

An ndarray with structured data type which has been subclassed as np.recarray and whose dtype is of type np.record, making the fields of its data type to be accessible by attribute.

reference

Если a является ссылкой на b, тогда (a is b) == True. Следовательно, a и b — это разные имена для одного и того же объекта Python.

row-major

Способ представления элементов N-мерного массива в одномерной памяти компьютера. В строчно-главном порядке самый правый индекс «меняется быстрее всего»: например, массив:

[[1, 2, 3],
 [4, 5, 6]]

представлен в строчно-главном порядке как:

[1, 2, 3, 4, 5, 6]

Строчно-главный порядок также известен как порядок C, так как язык программирования C его использует. Новые массивы NumPy по умолчанию имеют строчно-главный порядок.

self

Часто встречается в сигнатурах методов, self относится к экземпляру связанного класса. Например:

>>> class Paintbrush(object):
...     color = 'blue'
...
...     def paint(self):
...         print("Painting the city %s!" % self.color)
...
>>> p = Paintbrush()
>>> p.color = 'red'
>>> p.paint() # self refers to 'p'
Painting the city red!
slice

Используется для выбора только определённых элементов из последовательности:

>>> x = range(5)
>>> x
[0, 1, 2, 3, 4]
>>> x[1:3] # slice from 1 to 3 (excluding 3 itself)
[1, 2]
>>> x[1:5:2] # slice from 1 to 5, but skipping every second element
[1, 3]
>>> x[::-1] # slice a sequence in reverse
[4, 3, 2, 1, 0]

Массивы могут иметь более одного измерения, каждое из которых может быть разделено индивидуально:

>>> x = np.array([[1, 2], [3, 4]])
>>> x
array([[1, 2],
       [3, 4]])
>>> x[:, 1]
array([2, 4])
structure

См. структурированный тип данных

structured data type

Тип данных, составленный из других типов данных

subarray data type

A структурированный тип данных может содержать a ndarray со своим собственным dtype и формой:

>>> dt = np.dtype([('a', np.int32), ('b', np.float32, (3,))])
>>> np.zeros(3, dtype=dt)
array([(0, [0., 0., 0.]), (0, [0., 0., 0.]), (0, [0., 0., 0.])],
      dtype=[('a', '<i4'), ('b', '<f4', (3,))])
title

Помимо имён полей, поля структурированного массива могут иметь связанный заголовок, который является псевдонимом имени и обычно используется для построения графиков.

tuple

Последовательность, которая может содержать переменное число типов любого рода. Кортеж неизменяем, т. е. после создания его нельзя изменить. Подобно списку, он может индексироваться и срезовываться:

>>> x = (1, 'one', [1, 2])
>>> x
(1, 'one', [1, 2])

>>> x[0]
1

>>> x[:2]
(1, 'one')

Полезной концепцией является «распаковка кортежа», которая позволяет переменным присваивать содержимое кортежа:

>>> x, y = (1, 2)
>>> x, y = 1, 2

Это часто используется, когда функция возвращает несколько значений:

>>> def return_many():
...     return 1, 'alpha', None
>>> a, b, c = return_many()
>>> a, b, c
(1, 'alpha', None)
>>> a
1
>>> b
'alpha'
ufunc

Универсальная функция. Быстрая поэлементная, векторизованная операция над массивом. Примеры включают add, sin и logical_or.

vectorization

Оптимизация цикла с помощью специализированного кода. В традиционном понимании векторизация выполняет одну и ту же операцию над множеством элементов с фиксированными шагами между ними с помощью специализированного оборудования. Компиляторы умеют использовать хорошо построенные циклы для реализации таких оптимизаций. NumPy использует векторизацию для обозначения любой оптимизации с помощью специализированного кода, выполняющего одни и те же операции над множеством элементов, как правило, достигая ускорения за счет избежания некоторых накладных расходов на поиск и преобразование элементов.

view

Массив, который не владеет своими данными, а вместо этого ссылается на данные другого массива. Например, мы можем создать представление, которое показывает только каждый второй элемент другого массива:

>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])

>>> y = x[::2]
>>> y
array([0, 2, 4])

>>> x[0] = 3 # changing x changes y as well, since y is a view on x
>>> y
array([3, 2, 4])
wrapper

Python — язык высокого уровня (высоко абстрагированный или похожий на английский). Эта абстракция имеет свою цену в скорости выполнения, и иногда необходимо использовать языки более низкого уровня для выполнения быстрых вычислений. Обёртка — это код, который обеспечивает мост между языками высокого и низкого уровней, позволяя, например, Python выполнять код, написанный на C или Fortran.

Примеры включают ctypes, SWIG и Cython (которые оборачивают C и C++) и f2py (который оборачивает Fortran).

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/glossary.html

Spec-Zone.ru

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