Словарь терминов
-
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: ... 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 с структурированным типом данных, который был подклассифицирован как
np.recarrayи чьим dtype является типnp.record, что делает поля его типа данных доступными по атрибуту. -
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: ... 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 structured data type может содержать 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.19/glossary.html