Многомерный массив (ndarray)
Объект ndarray — это (обычно имеющий фиксированный размер) многомерный контейнер элементов одного типа и размера. Количество измерений и элементов в массиве определяется его shape, который является tuple из N положительных целых чисел, определяющих размеры каждого измерения. Тип элементов в массиве задаётся отдельным объектом типа данных (dtype), ассоциированным с каждым ndarray.
Как и другие контейнерные объекты в Python, содержимое объекта ndarray может быть обращено и изменено с помощью индексирования или срезов массива (например, используя N целых чисел), а также через методы и атрибуты объекта ndarray.
Разные ndarrays могут совместно использовать одни и те же данные, так что изменения, внесённые в один ndarray, могут быть видны в другом. То есть, ndarray может быть «представлением» другого ndarray, и данные, на которые он ссылается, управляются «базовым» ndarray. Ndarray также могут быть представлениями памяти, принадлежащей Python strings или объектам, реализующим интерфейсы buffer или массива.
Пример
Двумерный массив размером 2 x 3, состоящий из целочисленных элементов размером 4 байта:
>>> x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
>>> type(x)
<type 'numpy.ndarray'>
>>> x.shape
(2, 3)
>>> x.dtype
dtype('int32')
К массиву можно получить доступ с помощью синтаксиса, аналогичного контейнерам Python:
>>> # The element of x in the *second* row, *third* column, namely, 6. >>> x[1, 2]
Например, срезы могут создавать представления массива:
>>> y = x[:,1]
>>> y
array([2, 5])
>>> y[0] = 9 # this also changes the corresponding element in x
>>> y
array([9, 5])
>>> x
array([[1, 9, 3],
[4, 5, 6]])
Создание массивов
Новые массивы можно создавать, используя описанные в методы создания массивов и также с помощью низкоуровневого конструктора ndarray:
ndarray(shape[, dtype, buffer, offset, …]) | Объект массива представляет многомерный однородный массив элементов фиксированного размера. |
Индексирование массивов
Массивы можно индексировать, используя расширенный синтаксис срезов Python, array[selection]. Аналогичный синтаксис используется для доступа к полям в массиве со структурированным типом.
См. также
Внутренняя структура памяти ndarray
Экземпляр класса ndarray состоит из непрерывного одномерного сегмента компьютерной памяти (принадлежащего массиву или какому-либо другому объекту), совмещённого со схемой индексирования, которая отображает N целых чисел в позицию элемента в блоке. Диапазоны изменения индексов определяются shape массива. Размер каждого элемента в байтах и интерпретация байтов определяются объектом типа данных, ассоциированным с массивом.
Отрезок памяти по своей сути одномерен, и существует множество различных схем упорядочения элементов N-мерного массива в одномерном блоке. NumPy гибкий, и объекты ndarray могут адаптироваться к любой схеме индексирования с шагом. В схеме с шагом индекс N-мерного массива соответствует смещению (в байтах):
<img alt="n_{\mathrm{offset}} = \sum_{k=0}^{N-1} s_k n_k" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPCEtLSBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBkdmlzdmdtIDIuMS4zIC0tPgo8c3ZnIGhlaWdodD0nMzQuNDkzcHQnIHZlcnNpb249JzEuMScgdmlld0JveD0nMTkwLjE2MiA3OS45MDA0IDg1LjQyOTkgMzQuNDkzJyB3aWR0aD0nODUuNDI5OXB0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJz4KPGRlZnM+CjxwYXRoIGQ9J00xNS4xMzUyIDE2LjczNzJMMTYuNTgxOCAxMi45MTE2SDE2LjI4MjlDMTUuODE2NyAxNC4xNTQ5IDE0LjU0OTQgMTQuOTY3OSAxMy4xNzQ2IDE1LjMyNjVDMTIuOTIzNSAxNS4zODYzIDExLjc1MTkgMTUuNjk3MSA5LjQ1NjU0IDE1LjY5NzFIMi4yNDc1N0w4LjMzMjc1IDguNTU5OUM4LjQxNjQ0IDguNDY0MjYgOC40NDAzNSA4LjQyODM5IDguNDQwMzUgOC4zNjg2MkM4LjQ0MDM1IDguMzQ0NzEgOC40NDAzNSA4LjMwODg0IDguMzU2NjYgOC4xODkyOUwyLjc4NTU1IDAuNTczODQ4SDkuMzM2OTlDMTAuOTM5IDAuNTczODQ4IDEyLjAyNjkgMC43NDEyMiAxMi4xMzQ1IDAuNzY1MTMxQzEyLjc4MDEgMC44NjA3NzIgMTMuODIwMiAxLjA2NDAxIDE0Ljc2NDYgMS42NjE3N0MxNS4wNjM1IDEuODUzMDUgMTUuODc2NSAyLjM5MTAzIDE2LjI4MjkgMy4zNTk0SDE2LjU4MThMMTUuMTM1MiAwSDEuMDA0MjNDMC43MjkyNjUgMCAwLjcxNzMxIDAuMDExOTU1MiAwLjY4MTQ0NSAwLjA4MzY4NjJDMC42Njk0ODkgMC4xMTk1NTIgMC42Njk0ODkgMC4zNDY3IDAuNjY5NDg5IDAuNDc4MjA3TDYuOTkzNzcgOS4xMzM3NUwwLjgwMDk5NiAxNi4zOTA1QzAuNjgxNDQ1IDE2LjUzNCAwLjY4MTQ0NSAxNi41OTM4IDAuNjgxNDQ1IDE2LjYwNTdDMC42ODE0NDUgMTYuNzM3MiAwLjc4OTA0MSAxNi43MzcyIDEuMDA0MjMgMTYuNzM3MkgxNS4xMzUyWicgaWQ9J2cwLTg4Jy8+CjxwYXRoIGQ9J00yLjQ2Mjc2IC0zLjUwMjg2QzIuNDg2NjcgLTMuNTc0NiAyLjc4NTU1IC00LjE3MjM1IDMuMjI3OSAtNC41NTQ5MkMzLjUzODczIC00Ljg0MTg0IDMuOTQ1MjEgLTUuMDMzMTMgNC40MTE0NiAtNS4wMzMxM0M0Ljg4OTY2IC01LjAzMzEzIDUuMDU3MDQgLTQuNjc0NDcgNS4wNTcwNCAtNC4xOTYyNkM1LjA1NzA0IC0zLjUxNDgyIDQuNTY2ODcgLTIuMTUxOTMgNC4zMjc3NyAtMS41MDYzNUM0LjIyMDE3IC0xLjIxOTQzIDQuMTYwNCAtMS4wNjQwMSA0LjE2MDQgLTAuODQ4ODE3QzQuMTYwNCAtMC4zMTA4MzQgNC41MzEwMSAwLjExOTU1MiA1LjEwNDg2IDAuMTE5NTUyQzYuMjE2NjkgMC4xMTk1NTIgNi42MzUxMiAtMS42Mzc4NiA2LjYzNTEyIC0xLjcwOTU5QzYuNjM1MTIgLTEuNzY5MzYgNi41ODczIC0xLjgxNzE5IDYuNTE1NTcgLTEuODE3MTlDNi40MDc5NyAtMS44MTcxOSA2LjM5NjAxIC0xLjc4MTMyIDYuMzM2MjQgLTEuNTc4MDhDNi4wNjEyNyAtMC41OTc3NTggNS42MDY5NyAtMC4xMTk1NTIgNS4xNDA3MiAtMC4xMTk1NTJDNS4wMjExNyAtMC4xMTk1NTIgNC44Mjk4OSAtMC4xMzE1MDcgNC44Mjk4OSAtMC41MTQwNzJDNC44Mjk4OSAtMC44MTI5NTEgNC45NjEzOSAtMS4xNzE2MSA1LjAzMzEzIC0xLjMzODk4QzUuMjcyMjMgLTEuOTk2NTEgNS43NzQzNSAtMy4zMzU0OSA1Ljc3NDM1IC00LjAxNjk0QzUuNzc0MzUgLTQuNzM0MjUgNS4zNTU5MiAtNS4yNzIyMyA0LjQ0NzMyIC01LjI3MjIzQzMuMzgzMzEgLTUuMjcyMjMgMi44MjE0MiAtNC41MTkwNSAyLjYwNjIzIC00LjIyMDE3QzIuNTcwMzYgLTQuOTAxNjIgMi4wODAyIC01LjI3MjIzIDEuNTU0MTcgLTUuMjcyMjNDMS4xNzE2MSAtNS4yNzIyMyAwLjkwODU5MyAtNS4wNDUwOCAwLjcwNTM1NSAtNC42Mzg2MUMwLjQ5MDE2MiAtNC4yMDgyMiAwLjMyMjc5IC0zLjQ5MDkxIDAuMzIyNzkgLTMuNDQzMDlTMC4zNzA2MSAtMy4zMzU0OSAwLjQ1NDI5NiAtMy4zMzU0OUMwLjU0OTkzOCAtMy4zMzU0OSAwLjU2MTg5MyAtMy4zNDc0NSAwLjYzMzYyNCAtMy42MjI0MkMwLjgyNDkwNyAtNC4zNTE2OCAxLjA0MDEgLTUuMDMzMTMgMS41MTgzMSAtNS4wMzMxM0MxLjc5MzI4IC01LjAzMzEzIDEuODg4OTIgLTQuODQxODQgMS44ODg5MiAtNC40ODMxOUMxLjg4ODkyIC00LjIyMDE3IDEuNzY5MzYgLTMuNzUzOTIgMS42ODU2OCAtMy4zODMzMUwxLjM1MDkzIC0yLjA5MjE1QzEuMzAzMTEgLTEuODY1MDEgMS4xNzE2MSAtMS4zMjcwMiAxLjExMTgzIC0xLjExMTgzQzEuMDI4MTQgLTAuODAwOTk2IDAuODk2NjM4IC0wLjIzOTEwMyAwLjg5NjYzOCAtMC4xNzkzMjhDMC44OTY2MzggLTAuMDExOTU1MiAxLjAyODE0IDAuMTE5NTUyIDEuMjA3NDcgMC4xMTk1NTJDMS4zNTA5MyAwLjExOTU1MiAxLjUxODMxIDAuMDQ3ODIwNyAxLjYxMzk1IC0wLjEzMTUwN0MxLjYzNzg2IC0wLjE5MTI4MyAxLjc0NTQ1IC0wLjYwOTcxNCAxLjgwNTIzIC0wLjg0ODgxN0wyLjA2ODI0IC0xLjkyNDc4TDIuNDYyNzYgLTMuNTAyODZaJyBpZD0nZzMtMTEwJy8+CjxwYXRoIGQ9J00yLjcyNTc4IC0yLjM5MTAzQzIuOTI5MDIgLTIuMzU1MTcgMy4yNTE4MSAtMi4yODM0NCAzLjMyMzU0IC0yLjI3MTQ4QzMuNDc4OTUgLTIuMjIzNjYgNC4wMTY5NCAtMi4wMzIzOCA0LjAxNjk0IC0xLjQ1ODUzQzQuMDE2OTQgLTEuMDg3OTIgMy42ODIxOSAtMC4xMTk1NTIgMi4yOTUzOSAtMC4xMTk1NTJDMi4wNDQzMyAtMC4xMTk1NTIgMS4xNDc3IC0wLjE1NTQxNyAwLjkwODU5MyAtMC44MTI5NTFDMS4zODY4IC0wLjc1MzE3NiAxLjYyNTkgLTEuMTIzNzkgMS42MjU5IC0xLjM4NjhDMS42MjU5IC0xLjYzNzg2IDEuNDU4NTMgLTEuNzY5MzYgMS4yMTk0MyAtMS43NjkzNkMwLjk1NjQxMyAtMS43NjkzNiAwLjYwOTcxNCAtMS41NjYxMyAwLjYwOTcxNCAtMS4wMjgxNEMwLjYwOTcxNCAtMC4zMjI3OSAxLjMyNzAyIDAuMTE5NTUyIDIuMjgzNDQgMC4xMTk1NTJDNC4xMDA2MiAwLjExOTU1MiA0LjYzODYxIC0xLjIxOTQzIDQuNjM4NjEgLTEuODQxMUM0LjYzODYxIC0yLjAyMDQyIDQuNjM4NjEgLTIuMzU1MTcgNC4yNTYwNCAtMi43Mzc3M0MzLjk1NzE2IC0zLjAyNDY2IDMuNjcwMjQgLTMuMDg0NDMgMy4wMjQ2NiAtMy4yMTU5NEMyLjcwMTg3IC0zLjI4NzY3IDIuMTg3OCAtMy4zOTUyNyAyLjE4NzggLTMuOTMzMjVDMi4xODc4IC00LjE3MjM1IDIuNDAyOTkgLTUuMDMzMTMgMy41Mzg3MyAtNS4wMzMxM0M0LjA0MDg1IC01LjAzMzEzIDQuNTMxMDEgLTQuODQxODQgNC42NTA1NiAtNC40MTE0NkM0LjEyNDUzIC00LjQxMTQ2IDQuMTAwNjIgLTMuOTU3MTYgNC4xMDA2MiAtMy45NDUyMUM0LjEwMDYyIC0zLjY5NDE1IDQuMzI3NzcgLTMuNjIyNDIgNC40MzUzNyAtMy42MjI0MkM0LjYwMjc0IC0zLjYyMjQyIDQuOTM3NDggLTMuNzUzOTIgNC45Mzc0OCAtNC4yNTYwNFM0LjQ4MzE5IC01LjI3MjIzIDMuNTUwNjggLTUuMjcyMjNDMS45ODQ1NiAtNS4yNzIyMyAxLjU2NjEzIC00LjA0MDg1IDEuNTY2MTMgLTMuNTUwNjhDMS41NjYxMyAtMi42NDIwOSAyLjQ1MDgxIC0yLjQ1MDgxIDIuNzI1NzggLTIuMzkxMDNaJyBpZD0nZzMtMTE1Jy8+CjxwYXRoIGQ9J002LjMxMjMzIC00LjU3NDg0QzYuNDA3OTcgLTQuOTY1MzggNi41ODMzMSAtNS4xNTY2NiA3LjE1NzE2IC01LjE4MDU3QzcuMjM2ODYgLTUuMTgwNTcgNy4zMDA2MiAtNS4yMjgzOSA3LjMwMDYyIC01LjMzMkM3LjMwMDYyIC01LjM3OTgzIDcuMjYwNzcgLTUuNDQzNTkgNy4xODEwNyAtNS40NDM1OUM3LjEyNTI4IC01LjQ0MzU5IDYuOTczODUgLTUuNDE5NjggNi4zODQwNiAtNS40MTk2OEM1Ljc0NjQ1IC01LjQxOTY4IDUuNjQyODQgLTUuNDQzNTkgNS41NzExMSAtNS40NDM1OUM1LjQ0MzU5IC01LjQ0MzU5IDUuNDE5NjggLTUuMzU1OTIgNS40MTk2OCAtNS4yOTIxNUM1LjQxOTY4IC01LjE4ODU0IDUuNTIzMjkgLTUuMTgwNTcgNS41OTUwMiAtNS4xODA1N0M2LjA4MTIgLTUuMTY0NjMgNi4wODEyIC00Ljk0OTQ0IDYuMDgxMiAtNC44Mzc4NkM2LjA4MTIgLTQuNzk4MDEgNi4wODEyIC00Ljc1ODE2IDYuMDQ5MzIgLTQuNjMwNjRMNS4xNzI2IC0xLjEzOTczTDMuMjUxODEgLTUuMzAwMTJDMy4xODgwNCAtNS40NDM1OSAzLjE3MjEgLTUuNDQzNTkgMi45ODA4MiAtNS40NDM1OUgxLjk0NDcxQzEuODAxMjUgLTUuNDQzNTkgMS42OTc2MyAtNS40NDM1OSAxLjY5NzYzIC01LjI5MjE1QzEuNjk3NjMgLTUuMTgwNTcgMS43OTMyOCAtNS4xODA1NyAxLjk2MDY1IC01LjE4MDU3QzIuMDI0NDEgLTUuMTgwNTcgMi4yNjM1MSAtNS4xODA1NyAyLjQ0NjgyIC01LjEzMjc1TDEuMzc4ODMgLTAuODUyODAyQzEuMjgzMTkgLTAuNDU0Mjk2IDEuMDc1OTcgLTAuMjc4OTU0IDAuNTQxOTY4IC0wLjI2MzAxNEMwLjQ5NDE0NyAtMC4yNjMwMTQgMC4zOTg1MDYgLTAuMjU1MDQ0IDAuMzk4NTA2IC0wLjExMTU4MkMwLjM5ODUwNiAtMC4wNjM3NjA5IDAuNDM4MzU2IDAgMC41MTgwNTcgMEMwLjU0OTkzOCAwIDAuNzMzMjUgLTAuMDIzOTEwMyAxLjMwNzEgLTAuMDIzOTEwM0MxLjkzNjc0IC0wLjAyMzkxMDMgMi4wNTYyOSAwIDIuMTI4MDIgMEMyLjE1OTkgMCAyLjI3OTQ1IDAgMi4yNzk0NSAtMC4xNTE0MzJDMi4yNzk0NSAtMC4yNDcwNzMgMi4xOTE3OCAtMC4yNjMwMTQgMi4xMzU5OSAtMC4yNjMwMTRDMS44NDkwNyAtMC4yNzA5ODQgMS42MDk5NiAtMC4zMTg4MDQgMS42MDk5NiAtMC41OTc3NThDMS42MDk5NiAtMC42Mzc2MDkgMS42MzM4NyAtMC43NDkxOTEgMS42MzM4NyAtMC43NTcxNjFMMi42Nzc5NiAtNC45MTc1NkgyLjY4NTkzTDQuOTAxNjIgLTAuMTQzNDYyQzQuOTU3NDEgLTAuMDE1OTQwMiA0Ljk2NTM4IDAgNS4wNTMwNSAwQzUuMTY0NjMgMCA1LjE3MjYgLTAuMDMxODgwNCA1LjIwNDQ4IC0wLjE2NzM3Mkw2LjMxMjMzIC00LjU3NDg0WicgaWQ9J2cyLTc4Jy8+CjxwYXRoIGQ9J00yLjMyNzI3IC01LjI5MjE1QzIuMzM1MjQgLTUuMzA4MDkgMi4zNTkxNSAtNS40MTE3MSAyLjM1OTE1IC01LjQxOTY4QzIuMzU5MTUgLTUuNDU5NTMgMi4zMjcyNyAtNS41MzEyNiAyLjIzMTYzIC01LjUzMTI2QzIuMTk5NzUgLTUuNTMxMjYgMS45NTI2OCAtNS41MDczNSAxLjc2OTM2IC01LjQ5MTQxTDEuMzIzMDQgLTUuNDU5NTNDMS4xNDc3IC01LjQ0MzU5IDEuMDY4IC01LjQzNTYyIDEuMDY4IC01LjI5MjE1QzEuMDY4IC01LjE4MDU3IDEuMTc5NTggLTUuMTgwNTcgMS4yNzUyMiAtNS4xODA1N0MxLjY1Nzc4IC01LjE4MDU3IDEuNjU3NzggLTUuMTMyNzUgMS42NTc3OCAtNS4wNjEwMkMxLjY1Nzc4IC01LjAzNzExIDEuNjU3NzggLTUuMDIxMTcgMS42MTc5MyAtNC44Nzc3MUwwLjQ4NjE3NyAtMC4zNDI3MTVDMC40NTQyOTYgLTAuMjIzMTYzIDAuNDU0Mjk2IC0wLjE3NTM0MiAwLjQ1NDI5NiAtMC4xNjczNzJDMC40NTQyOTYgLTAuMDMxODgwNCAwLjU2NTg3OCAwLjA3OTcwMTEgMC43MTczMSAwLjA3OTcwMTFDMC45ODgyOTQgMC4wNzk3MDExIDEuMDUyMDUgLTAuMTc1MzQyIDEuMDgzOTQgLTAuMjg2OTI0QzEuMTYzNjQgLTAuNjIxNjY5IDEuMzcwODYgLTEuNDY2NSAxLjQ1ODUzIC0xLjgwMTI1QzEuODk2ODkgLTEuNzUzNDIgMi40MzA4OCAtMS42MDE5OSAyLjQzMDg4IC0xLjE0NzdDMi40MzA4OCAtMS4xMDc4NSAyLjQzMDg4IC0xLjA2OCAyLjQxNDk0IC0wLjk4ODI5NEMyLjM5MTAzIC0wLjg4NDY4MiAyLjM3NTA5IC0wLjc3MzEwMSAyLjM3NTA5IC0wLjczMzI1QzIuMzc1MDkgLTAuMjYzMDE0IDIuNzI1NzggMC4wNzk3MDExIDMuMTg4MDQgMC4wNzk3MDExQzMuNTIyNzkgMC4wNzk3MDExIDMuNzMwMDEgLTAuMTY3MzcyIDMuODMzNjIgLTAuMzE4ODA0QzQuMDI0OTEgLTAuNjEzNjk5IDQuMTUyNDMgLTEuMDkxOTEgNC4xNTI0MyAtMS4xMzk3M0M0LjE1MjQzIC0xLjIxOTQzIDQuMDg4NjcgLTEuMjQzMzQgNC4wMzI4OCAtMS4yNDMzNEMzLjkzNzI0IC0xLjI0MzM0IDMuOTIxMyAtMS4xOTU1MiAzLjg4OTQxIC0xLjA1MjA1QzMuNzg1OCAtMC42Nzc0NiAzLjU3ODU4IC0wLjE0MzQ2MiAzLjIwMzk5IC0wLjE0MzQ2MkMyLjk5Njc2IC0wLjE0MzQ2MiAyLjk0ODk0IC0wLjMxODgwNCAyLjk0ODk0IC0wLjUzMzk5OEMyLjk0ODk0IC0wLjYzNzYwOSAyLjk1NjkxIC0wLjczMzI1IDIuOTk2NzYgLTAuOTE2NTYzQzMuMDA0NzMgLTAuOTQ4NDQzIDMuMDM2NjEgLTEuMDc1OTcgMy4wMzY2MSAtMS4xNjM2NEMzLjAzNjYxIC0xLjgxNzE5IDIuMjE1NjkgLTEuOTYwNjUgMS44MDkyMiAtMi4wMTY0NEMyLjEwNDExIC0yLjE5MTc4IDIuMzc1MDkgLTIuNDYyNzYgMi40NzA3MyAtMi41NjYzOEMyLjkwOTA5IC0yLjk5Njc2IDMuMjY3NzUgLTMuMjkxNjYgMy42NTAzMSAtMy4yOTE2NkMzLjc1MzkyIC0zLjI5MTY2IDMuODQ5NTYgLTMuMjY3NzUgMy45MTMzMyAtMy4xODgwNEMzLjQ4Mjk0IC0zLjEzMjI1IDMuNDgyOTQgLTIuNzU3NjYgMy40ODI5NCAtMi43NDk2OUMzLjQ4Mjk0IC0yLjU3NDM1IDMuNjE4NDMgLTIuNDU0NzkgMy43OTM3NyAtMi40NTQ3OUM0LjAwODk3IC0yLjQ1NDc5IDQuMjQ4MDcgLTIuNjMwMTQgNC4yNDgwNyAtMi45NTY5MUM0LjI0ODA3IC0zLjIyNzkgNC4wNTY3OSAtMy41MTQ4MiAzLjY1ODI4IC0zLjUxNDgyQzMuMTk2MDEgLTMuNTE0ODIgMi43ODE1NyAtMy4xNjQxMyAyLjMyNzI3IC0yLjcwOTg0QzEuODY1MDEgLTIuMjU1NTQgMS42NjU3NSAtMi4xNjc4NyAxLjUzODIzIC0yLjExMjA4TDIuMzI3MjcgLTUuMjkyMTVaJyBpZD0nZzItMTA3Jy8+CjxwYXRoIGQ9J00zLjg5NzM4IC0yLjU0MjQ3QzMuODk3MzggaC0zLjM5NTI3IDMuODA5NzEgLTMuOTEzMzMgMy41NDY3IC00LjQyMzQxQzMuMTk2MDEgLTUuMTI0NzggMi41NTA0NCAtNS4zMDAxMiAyLjExMjA4IC01LjMwMDEyQzEuMTA3ODUgLTUuMzAwMTIgMC43NDEyMiAtNC41NTA5MyAwLjYyOTYzOSAtNC4zMjc3N0MwLjM0MjcxNSAtMy43NDU5NSAwLjMyNjc3NSAtMi45NTY5MSAwLjMyNjc3NSAtMi41NDI0N0MwLjMyNjc3NSAtMi4wMTY0NCAwLjM1MDY4NSAtMS4yMTE0NiAwLjczMzI1IC0wLjU3Mzg0OEMxLjA5OTg4IDAuMDE1OTQwMiAxLjY4OTY2IDAuMTY3MzcyIDIuMTEyMDggMC4xNjczNzJDMi40OTQ2NSAwLjE2NzM3MiAzLjE4MDA3IDAuMDQ3ODIwNyAzLjU3ODU4IC0wLjc0MTIyQzMuODczNDcgLTEuMzE1MDcgMy44OTczOCAtMi4wMjQ0MSAzLjg5NzM4IC0yLjU0MjQ3Wk0yLjExMjA4IC0wLjA1NTc5MDhDMS44NDExIC0wLjA1NTc5MDggMS4yOTExNiAtMC4xODMzMTMgMS4xMjM3OSAtMS4wMjAxN0MxLjAzNjExIC0xLjQ3NDQ3IDEuMDM2MTEgLTIuMjIzNjYgMS4wMzYxMSAtMi42MzgxMUMxLjAzNjExIC0zLjE4ODA0IDEuMDM2MTEgLTMuNzQ1OTUgMS4xMjM3OSAtNC4xODQzMUMxLjI5MTE2IC00Ljk5NzI2IDEuOTEyODMgLTUuMDc2OTYgMi4xMTIwOCAtNS4wNzY5NkMyLjM4MzA2IC01LjA3Njk2IDIuOTMzIC00Ljk0MTQ3IDMuMDkyNCAtNC4yMTYxOUMzLjE4ODA0IC0zLjc3NzgzIDMuMTg4MDQgLTMuMTgwMDcgMy4xODgwNCAtMi42MzgxMUMzLjE4ODA0IC0yLjE2Nzg3IDMuMTg4MDQgLTEuNDUwNTYgMy4wOTI0IC0xLjAwNDIzQzIuOTI1MDMgLTAuMTY3MzcyIDIuMzc1MDkgLTAuMDU1NzkwOCAyLjExMjA4IC0wLjA1NTc5MDhaJyBpZD0nZzQtNDgnLz4KPHBhdGggZD0nTTIuNTAyNjIgLTUuMDc2OTZDMi41MDI2MiAtNS4yOTIxNSAyLjQ4NjY3IC01LjMwMDEyIDIuMjcxNDggLTUuMzAwMTJDMS45NDQ3MSAtNC45ODEzMiAxLjUyMjI5IC00Ljc5MDA0IDAuNzY1MTMxIC00Ljc5MDA0Vi00LjUyNzAyQzAuOTgwMzI0IC00LjUyNzAyIDEuNDEwNzEgLTQuNTI3MDIgMS44NzI5OCAtNC43NDIyMlYtMC42NTM1NDlDMS44NzI5OCAtMC4zNTg2NTUgMS44NDkwNyAtMC4yNjMwMTQgMS4wOTE5MSAtMC4yNjMwMTRIMC44MTI5NTFWMEMxLjEzOTczIC0wLjAyMzkxMDMgMS44MjUxNiAtMC4wMjM5MTAzIDIuMTgzODEgLTAuMDIzOTEwM1MzLjIzNTg3IC0wLjAyMzkxMDMgMy41NjI2NCAwVi0wLjI2MzAxNEgzLjI4MzY5QzIuNTI2NTMgLTAuMjYzMDE0IDIuNTAyNjIgLTAuMzU4NjU1IDIuNTAyNjIgLTAuNjUzNTQ5Vi01LjA3Njk2WicgaWQ9J2c0LTQ5Jy8+CjxwYXRoIGQ9J001LjgyNjE1IC0yLjY1NDA1QzUuOTQ1NyAtMi42NTQwNSA2LjEwNTExIC0yLjY1NDA1IDYuMTA1MTEgLTIuODM3MzZTNS45MTM4MiAtMy4wMjA2NyA1Ljc5NDI3IC0zLjAyMDY3SDAuNzgxMDcxQzAuNjYxNTE5IC0zLjAyMDY3IDAuNDcwMjM3IC0zLjAyMDY3IDAuNDcwMjM3IC0yLjgzNzM2UzAuNjI5NjM5IC0yLjY1NDA1IDAuNzQ5MTkxIC0yLjY1NDA1SDUuODI2MTVaTTUuNzk0MjcgLTAuOTY0Mzg0QzUuOTEzODIgLTAuOTY0Mzg0IDYuMTA1MTEgLTAuOTY0Mzg0IDYuMTA1MTEgLTEuMTQ3N1M1Ljk0NTcgLTEuMzMxMDEgNS44MjYxNSAtMS4zMzEwMUgwLjc0OTE5MUMwLjYyOTYzOSAtMS4zMzEwMSAwLjQ3MDIzNyAtMS4zMzEwMSAwLjQ3MDIzNyAtMS4xNDc3UzAuNjYxNTE5IC0wLjk2NDM4NCAwLjc4MTA3MSAtMC45NjQzODRINS43OTQyN1onIGlkPSdnNC02MScvPgo8cGF0aCBkPSdNMy4yOTE2NiAtMS44MTcxOUMzLjQ2NyAtMS44MTcxOSAzLjUxNDgyIC0xLjgxNzE5IDMuNTE0ODIgLTIuMDAwNUMzLjUxNDgyIC0yLjcwOTg0IDMuMTI0MjggLTMuNTU0NjcgMi4wMDA1IC0zLjU1NDY3QzEuMDEyMiAtMy41NTQ2NyAwLjIzOTEwMyAtMi43MzM3NSAwLjIzOTEwMyAtMS43NDU0NUMwLjIzOTEwMyAtMC43MTczMSAxLjA5OTg4IDAuMDc5NzAxMSAyLjEwNDExIDAuMDc5NzAxMUMzLjExNjMxIDAuMDc5NzAxMSAzLjUxNDgyIC0wLjc3MzEwMSAzLjUxNDgyIC0wLjk1NjQxM0MzLjUxNDgyIC0wLjk4ODI5NCAzLjQ5MDkxIC0xLjA2OCAzLjM4NzMgLTEuMDY4QzMuMjk5NjMgLTEuMDY4IDMuMjgzNjkgLTEuMDEyMiAzLjI2Nzc1IC0wLjk2NDM4NEMyLjk4MDgyIC0wLjE5MTI4MyAyLjI5NTM5IC0wLjE2NzM3MiAyLjE1MTkzIC0wLjE2NzM3MkMxLjc5MzI4IC0wLjE2NzM3MiAxLjQyNjY1IC0wLjMzNDc0NSAxLjE4NzU1IC0wLjcwMTM3UzAuOTQ4NDQzIC0xLjU3ODA4IDAuOTQ4NDQzIC0xLjgxNzE5SDMuMjkxNjZaTTAuOTU2NDEzIC0yLjAyNDQxQzEuMDI4MTQgLTMuMTQwMjIgMS43MDU2IC0zLjMzMTUxIDIuMDAwNSAtMy4zMzE1MUMyLjkzMyAtMy4zMzE1MSAyLjk2NDg4IC0yLjIwNzcyIDIuOTcyODUgLTIuMDI0NDFIMC45NTY0MTNaJyBpZD0nZzQtMTAxJy8+CjxwYXRoIGQ9J00zLjk4NTA2IC0xLjY5NzYzQzMuOTg1MDYgLTIuNjkzOSAzLjE2NDEzIC0zLjU1NDY3IDIuMTEyMDggLTMuNTU0NjdTMC4yMzkxMDMgLTIuNjkzOSAwLjIzOTEwMyAtMS42OTc2M1MxLjA5MTkxIDAuMDc5NzAxMSAyLjExMjA4IDAuMDc5NzAxMUMzLjE0MDIyIDAuMDc5NzAxMSAzLjk4NTA2IC0wLjcwMTM3IDMuOTg1MDYgLTEuNjk3NjNaTTIuMTEyMDggLTAuMTY3MzcyQzEuNjgxNjkgLTAuMTY3MzcyIDEuMzQ2OTUgLTAuMzc0NTk1IDEuMTcxNjEgLTAuNjUzNTQ5QzAuOTcyMzU0IC0wLjk4MDMyNCAwLjk0ODQ0MyAtMS4zNzA4NiAwLjk0ODQ0MyAtMS43NjkzNkMwLjk0ODQ0MyAtMi4wNzIyMyAwLjk0ODQ0MyAtMi41NTA0NCAxLjE5NTUyIC0yLjg5MzE1QzEuNDAyNzQgLTMuMTcyMSAxLjczNzQ4IC0zLjMzMTUxIDIuMTEyMDggLTMuMzMxNTFDMi41MjY1MyAtMy4zMzE1MSAyLjg2OTI0IC0zLjEzMjI1IDMuMDUyNTUgLTIuODUzM0MzLjI2Nzc1IC0yLjUxODU
с начала блока памяти, связанного с массивом. Здесь, — это целые числа, которые задают
strides массива. Схемы порядка столбцов (используемые, например, в языке Fortran и в Matlab) и порядке строк (используемые в C) — это всего лишь определенные виды схем с шагом, и соответствуют памяти, которая может быть адресована с помощью шагов:
<img alt="s_k^{\mathrm{column}} = \mathrm{itemsize} \prod_{j=0}^{k-1} d_j , \quad s_k^{\mathrm{row}} = \mathrm{itemsize} \prod_{j=k+1}^{N-1} d_j ." src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPCEtLSBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBkdmlzdmdtIDIuMS4zIC0tPgo8c3ZnIGhlaWdodD0nMzYuMTMxM3B0JyB2ZXJzaW9uPScxLjEnIHZpZXdCb3g9JzEwNC45MjggNzkuOTAwNCAyNTYuMzk1IDM2LjEzMTMnIHdpZHRoPScyNTYuMzk1cHQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnPgo8ZGVmcz4KPHBhdGggZD0nTTE0LjU5NzMgMTYuNzM3MlYxNi4wOTE3QzEzLjAwNzIgMTYuMDkxNyAxMi42MzY2IDE1LjU0MTcgMTIuNjM2NiAxNC43NzY2VjEuOTYwNjVDMTIuNjM2NiAxLjE4MzU2IDEzLjAxOTIgMC42NDU1NzkgMTQuNTk3MyAwLjY0NTU3OVYwSDAuNjY5NDg5VjAuNjQ1NTc5QzIuMjU5NTMgMC42NDU1NzkgMi42MzAxNCAxLjE5NTUyIDIuNjMwMTQgMS45NjA2NVYxNC43NzY2QzIuNjMwMTQgMTUuNTUzNyAyLjI0NzU3IDE2LjA5MTcgMC42Njk0ODkgMTYuMDkxN1YxNi43MzcySDYuNDE5OTNWMTYuMDkxN0M0LjgyOTg5IDE2LjA5MTcgNC40NTkyOCAxNS41NDE3IDQuNDU5MjggMTQuNzc2NlYwLjY0NTU3OVgxMC44MDc1VjE0Ljc3NjZDMTAuODA3NSAxNS41NTM3IDEwLjQyNDkgMTYuMDkxNyA4Ljg0NjgyIDE2LjA5MTdWMTYuNzM3MkgxNC41OTczWicgaWQ9J2cwLTg5Jy8+CjxwYXRoIGQ9J00yLjE5OTc1IC0wLjU3Mzg0OEMyLjE5OTc1IC0wLjkyMDU0OCAxLjkxMjgzIC0xLjE1OTY1IDEuNjI1OSAtMS4xNTk2NUMxLjI3OTIgLTEuMTU5NjUgMS4wNDAxIC0wLjg3MjcyNyAxLjA0MDEgLTAuNTg1ODAzQzEuMDQwMSAtMC4yMzkxMDMgMS4zMjcwMiAwIDEuNjEzOTUgMEMxLjk2MDY1IDAgMi4xOTk3NSAtMC4yODY5MjQgMi4xOTk3NSAtMC41NzM4NDhaJyBpZD0nZzMtNTgnLz4KPHBhdGggZD0nTTIuMzMxMjYgMC4wNDc4MjA3QzIuMzMxMjYgLTAuNjQ1NTc5IDIuMTA0MTEgLTEuMTU5NjUgMS42MTM5NSAtMS4xNTk2NUMxLjIzMTM4IC0xLjE1OTY1IDEuMDQwMSAtMC44NDg4MTcgMS4wNDAxIC0wLjU4NTgwM1MxLjIxOTQzIDAgMS42MjU5IDBDMS43ODEzMiAwIDEuOTEyODMgLTAuMDQ3ODIwNyAyLjAyMDQyIC0wLjE1NTQxN0MyLjA0NDMzIC0wLjE3OTMyOCAyLjA1NjI5IC0wLjE3OTMyOCAyLjA2ODI0IC0wLjE3OTMyOEMyLjA5MjE1IC0wLjE3OTMyOCAyLjA5MjE1IC0wLjAxMTk1NTIgMi4wOTIxNSAwLjA0NzgyMDdDMi4wOTIxNSAwLjQ0MjM0MSAyLjAyMDQyIDEuMjE5NDMgMS4zMjcwMiAxLjk5NjUxQzEuMTk1NTIgMi4xMzk5OCAxLjE5NTUyIDIuMTYzODkgMS4xOTU1MiAyLjE4NzhDMS4xOTU1MiAyLjI0NzU3IDEuMjU1MjkgMi4zMDczNSAxLjMxNTA3IDIuMzA3MzVDMS40MTA3MSAyLjMwNzM1IDIuMzMxMjYgMS40MjI2NyAyLjMzMTI2IDAuMDQ3ODIwN1onIGlkPSdnMy01OScvPgo8cGF0aCBkPSdNNi4wMTM0NSAtNy45OTgwMUM2LjAyNTQgLTguMDQ1ODMgNi4wNDkzMiAtOC4xMTc1NiA2LjA0OTMyIC04LjE3NzMzQzYuMDQ5MzIgLTguMjk2ODkgNS45Mjk3NiAtOC4yOTY4OSA1LjkwNTg1IC04LjI5Njg5QzUuODkzOSAtOC4yOTY4OSA1LjMwODA5IC04LjI0OTA3IDUuMjQ4MzIgLTguMjM3MTFDNS4wNDUwOCAtOC4yMjUxNiA0Ljg2NTc1IC04LjIwMTI1IDQuNjUwNTYgLTguMTg5MjlDNC4zNTE2OCAtOC4xNjUzOCA0LjI2OCAtOC4xNTM0MiA0LjI2OCAtNy45MzgyM0M0LjI2OCAtNy44MTg2OCA0LjM2MzY0IC03LjgxODY4IDQuNTMxMDEgLTcuODE4NjhDNS4xMTY4MSAtNy44MTg2OCA1LjEyODc3IC03LjcxMTA4IDUuMTI4NzcgLTcuNTkxNTNDNS4xMjg3NyAtNy41MTk4IDUuMTA0ODYgLTcuNDI0MTYgNS4wOTI5IC03LjM4ODI5TDQuMzYzNjQgLTQuNDgzMTlDNC4yMzIxMyAtNC43OTQwMiAzLjkwOTM0IC01LjI3MjIzIDMuMjg3NjcgLTUuMjcyMjNDMS45MzY3NCAtNS4yNzIyMyAwLjQ3ODIwNyAtMy41MjY3NyAwLjQ3ODIwNyAtMS43NTc0MUMwLjQ3ODIwNyAtMC41NzM4NDggMS4xNzE2MSAwLjExOTU1MiAxLjk4NDU2IDAuMTE5NTUyQzIuNjQyMDkgMC4xMTk1NTIgMy4yMDM5OSAtMC4zOTQ1MjEgMy41Mzg3MyAtMC43ODkwNDFDMy42NTgyOCAtMC4wODM2ODYyIDQuMjIwMTcgMC4xMTk1NTIgNC41Nzg4MyAwLjExOTU1MlM1LjIyNDQxIC0wLjA5NTY0MTMgNS40Mzk2IC0wLjUyNjAyN0M1LjYzMDg4IC0wLjkzMjUwMyA1Ljc5ODI2IC0xLjY2MTc3IDUuNzk4MjYgLTEuNzA5NTlDNS43OTgyNiAtMS43NjkzNiA1Ljc1MDQ0IC0xLjgxNzE5IDUuNjc4NyAtMS44MTcxOUM1LjU3MTExIC0xLjgxNzE5IDUuNTU5MTUgLTEuNzU3NDEgNS41MTEzMyAtMS41NzgwOEM1LjMzMiAtMC44NzI3MjcgNS4xMDQ4NiAtMC4xMTk1NTIgNC42MTQ2OSAtMC4xMTk1NTJDNC4yNjggLTAuMTE5NTUyIDQuMjQ0MDggLTAuNDMwMzg2IDQuMjQ0MDggLTAuNjY5NDg5QzQuMjQ0MDggLTAuNzE3MzEgNC4yNDQwOCAtMC45NjgzNjkgNC4zMjc3NyAtMS4zMDMxMUw2LjAxMzQ1IC03Ljk5ODAxWk0zLjU5ODUxIC0xLjQyMjY3QzMuNTM4NzMgLTEuMjE5NDMgMy41Mzg3MyAtMS4xOTU1MiAzLjM3MTM2IC0wLjk2ODM2OUMzLjEwODM0IC0wLjYzMzYyNCAyLjU4MjMyIC0wLjExOTU1MiAyLjAyMDQyIC0wLjExOTU1MkMxLjUzMDI2IC0wLjExOTU1MiAxLjI1NTI5IC0wLjU2MTg5MyAxLjI1NTI5IC0xLjI2NzI1QzEuMjU1MjkgLTEuOTI0NzggMS42MjU5IC0zLjI2Mzc2IDEuODUzMDUgLTMuNzY1ODhDMi4yNTk1MyAtNC42MDI3NCAyLjgyMTQyIC01LjAzMzEzIDMuMjg3NjcgLTUuMDMzMTNDNC4wNzY3MSAtNS4wMzMxMyA0LjIzMjEzIC00LjA1MjggNC4yMzIxMyAtMy45NTcxNkM0LjIzMjEzIC0zLjk0NTIxIDQuMTk2MjYgLTMuNzg5NzkgNC4xODQzMSAtMy43NjU4OEwzLjU5ODUxIC0xLjQyMjY3WicgaWQ9J2czLTEwMCcvPgo8cGF0aCBkPSdNMi43MjU3OCAtMi4zOTEwM0MyLjkyOTAyIC0yLjM1NTE3IDMuMjUxODEgLTIuMjgzNDQgMy4zMjM1NCAtMi4yNzE0OEMzLjQ3ODk1IC0yLjIyMzY2IDQuMDE2OTQgLTIuMDMyMzggNC4wMTY5NCAtMS40NTg1M0M0LjAxNjk0IC0xLjA4NzkyIDMuNjgyMTkgLTAuMTE5NTUyIDIuMjk1MzkgLTAuMTE5NTUyQzIuMDQ0MzMgLTAuMTE5NTUyIDEuMTQ3NyAtMC4xNTU0MTcgMC45MDg1OTMgLTAuODEyOTUxQzEuMzg2OCAtMC43NTMxNzYgMS42MjU5IC0xLjEyMzc5IDEuNjI1OSAtMS4zODY4QzEuNjI1OSAtMS42Mzc4NiAxLjQ1ODUzIC0xLjc2OTM2IDEuMjE5NDMgLTEuNzY5MzZDMC45NTY0MTMgLTEuNzY5MzYgMC42MDk3MTQgLTEuNTY2MTMgMC42MDk3MTQgLTEuMDI4MTRDMC42MDk3MTQgLTAuMzIyNzkgMS4zMjcwMiAwLjExOTU1MiAyLjI4MzQ0IDAuMTE5NTUyQzQuMTAwNjIgMC4xMTk1NTIgNC42Mzg2MSAtMS4yMTk0MyA0LjYzODYxIC0xLjg0MTFDNC42Mzg2MSAtMi4wMjA0MiA0LjYzODYxIC0yLjM1NTE3IDQuMjU2MDQgLTIuNzM3NzNDMy45NTcxNiAtMy4wMjQ2NiAzLjY3MDI0IC0zLjA4NDQzIDMuMDI0NjYgLTMuMjE1OTRDMi43MDE4NyAtMy4yODc2NyAyLjE4NzggLTMuMzk1MjcgMi4xODc4IC0zLjkzMzI1QzIuMTg3OCAtNC4xNzIzNSAyLjQwMjk5IC01LjAzMzEzIDMuNTM4NzMgLTUuMDMzMTNDNC4wNDA4NSAtNS4wMzMxMyA0LjUzMTAxIC00Ljg0MTg0IDQuNjUwNTYgLTQuNDExNDZDNC4xMjQ1MyAtNC40MTE0NiA0LjEwMDYyIC0zLjk1NzE2IDQuMTAwNjIgLTMuOTQ1MjFDNC4xMDA2MiAtMy42OTQxNSA0LjMyNzc3IC0zLjYyMjQyIDQuNDM1MzcgLTMuNjIyNDJDNC42MDI3NCAtMy42MjI0MiA0LjkzNzQ4IC0zLjc1MzkyIDQuOTM3NDggLTQuMjU2MDRTNC40ODMxOSAtNS4yNzIyMyAzLjU1MDY4IC01LjI3MjIzQzEuOTg0NTYgLTUuMjcyMjMgMS41NjYxMyAtNC4wNDA4NSAxLjU2NjEzIC0zLjU1MDY4QzEuNTY2MTMgLTIuNjQyMDkgMi40NTA4MSAtMi40NTA4MSAyLjcyNTc4IC0yLjM5MTAzWicgaWQ9J2czLTExNScvPgo8cGF0aCBkPSdNNi4zMTIzMyAtNC41NzQ4NEM2LjQwNzk3IC00Ljk2NTM4IDYuNTgzMzEgLTUuMTU2NjYgNy4xNTcxNiAtNS4xODA1N0M3LjIzNjg2IC01LjE4MDU3IDcuMzAwNjIgLTUuMjI4MzkgNy4zMDA2MiAtNS4zMzJDNy4zMDA2MiAtNS4zNzk4MyA3LjI2MDc3IC01LjQ0MzU5IDcuMTgxMDcgLTUuNDQzNTlDNy4xMjUyOCAtNS40NDM1OSA2Ljk3Mzg1IC01LjQxOTY4IDYuMzg0MDYgLTUuNDE5NjhDNS43NDY0NSAtNS40MTk2OCA1LjY0Mjg0IC01LjQ0MzU5IDUuNTcxMTEgLTUuNDQzNTlDNS40NDM1OSAtNS40NDM1OSA1LjQxOTY4IC01LjM1NTkyIDUuNDE5NjggLTUuMjkyMTVDNS40MTk2OCAtNS4xODg1NCA1LjUyMzI5IC01LjE4MDU3IDUuNTk1MDIgLTUuMTgwNTdDNi4wODEyIC01LjE2NDYzIDYuMDgxMiAtNC45NDk0NCA2LjA4MTIgLTQuODM3ODZDNi4wODEyIC00Ljc5ODAxIDYuMDgxMiAtNC43NTgxNiA2LjA0OTMyIC00LjYzMDY0TDUuMTcyNiAtMS4xMzk3M0wzLjI1MTgxIC01LjMwMDEyQzMuMTg4MDQgLTUuNDQzNTkgMy4xNzIxIC01LjQ0MzU5IDIuOTgwODIgLTUuNDQzNTlIMS45NDQ3MUMxLjgwMTI1IC01LjQ0MzU5IDEuNjk3NjMgLTUuNDQzNTkgMS42OTc2MyAtNS4yOTIxNUMxLjY5NzYzIC01LjE4MDU3IDEuNzkzMjggLTUuMTgwNTcgMS45NjA2NSAtNS4xODA1N0MyLjAyNDQxIC01LjE4MDU3IDIuMjYzNTEgLTUuMTgwNTcgMi40NDY4MiAtNS4xMzI3NUwxLjM3ODgzIC0wLjg1MjgwMkMxLjI4MzE5IC0wLjQ1NDI5NiAxLjA3NTk3IC0wLjI3ODk1NCAwLjU0MTk2OCAtMC4yNjMwMTRDMC40OTQxNDcgLTAuMjYzMDE0IDAuMzk4NTA2IC0wLjI1NTA0NCAwLjM5ODUwNiAtMC4xMTE1ODJDMC4zOTg1MDYgLTAuMDYzNzYwOSAwLjQzODM1NiAwIDAuNTE4MDU3IDBDMC41NDk5MzggMCAwLjczMzI1IC0wLjAyMzkxMDMgMS4zMDcxIC0wLjAyMzkxMDNDMS45MzY3NCAtMC4wMjM5MTAzIDIuMDU2MjkgMCAyLjEyODAyIDBDMi4xNTk5IDAgMi4yNzk0NSAwIDIuMjc5NDUgLTAuMTUxNDMyQzIuMjc5NDUgLTAuMjQ3MDczIDIuMTkxNzggLTAuMjYzMDE0IDIuMTM1OTkgLTAuMjYzMDE0QzEuODQ5MDcgLTAuMjcwOTg0IDEuNjA5OTYgLTAuMzE4ODA0IDEuNjA5OTYgLTAuNTk3NzU4QzEuNjA5OTYgLTAuNjM3NjA5IDEuNjMzODcgLTAuNzQ5MTkxIDEuNjMzODcgLTAuNzU3MTYxTDIuNjc3OTYgLTQuOTE3NTZIMi42ODU5M0w0LjkwMTYyIC0wLjE0MzQ2MkM0Ljk1NzQxIC0wLjAxNTk0MDIgNC45NjUzOCAwIDUuMDUzMDUgMEM1LjE2NDYzIDAgNS4xNzI2IC0wLjAzMTg4MDQgNS4yMDQ0OCAtMC4xNjczNzJMNi4zMTIzMyAtNC41NzQ4NFonIGlkPSdnMi03OCcvPgo8cGF0aCBkPSdNMy4yOTE2NiAtNC45NzMzNUMzLjI5MTY2IC01LjEyNDc4IDMuMTcyMSAtNS4yNzYyMSAyLjk4MDgyIC01LjI3NjIxQzIuNzQxNzIgLTUuMjc2MjEgMi41MzQ1IC01LjA1MzA1IDIuNTM0NSAtNC44NDU4M0MyLjUzNDUgLTQuNjk0NCAyLjY1NDA1IC00LjU0Mjk2IDIuODQ1MzMgLTQuNTQyOTZDMy4wODQ0MyAtNC41NDI5NiAzLjI5MTY2IC00Ljc2NjEzIDMuMjkxNjYgLTQuOTczMzVaTTEuNjI1OSAwLjM5ODUwNkMxLjUwNjM1IDAuODg0NjgyIDEuMTE1ODIgMS40MDI3NCAwLjYyOTYzOSAxLjQwMjc0QzAuNTAyMTE3IDEuNDAyNzQgMC4zODI1NjUgMS4zNzA4NiAwLjM2NjYyNSAxLjM2Mjg5QzAuNjEzNjk5IDEuMjQzMzQgMC42NDU1NzkgMS4wMjgxNCAwLjY0NTU3OSAwLjk1NjQxM0MwLjY0NTU3OSAwLjc2NTEzMSAwLjUwMjExNyAwLjY2MTUxOSAwLjMzNDc0NSAwLjY2MTUxOUMwLjEwMzYxMSAwLjY2MTUxOSAtMC4xMTE1ODIgMC44NjA3NzIgLTAuMTExNTgyIDEuMTIzNzlDLTAuMTExNTgyIDEuNDI2NjUgMC4xODMzMTMgMS42MjU5IDAuNjM3NjA5IDEuNjI1OUMxLjEyMzc5IDEuNjI1OSAyLjAwMDUgMS4zMjMwNCAyLjIzOTYgMC4zNjY2MjVMMi45NTY5MSAtMi40ODY2N0MyLjk4MDgyIC0yLjU4MjMyIDIuOTk2NzYgLTIuNjQ2MDggMi45OTY3NiAtMi43NjU2M0MyLjk5Njc2IC0zLjIwMzk5IDIuNjQ2MDggLTMuNTE0ODIgMi4xODM4MSAtMy41MTQ4MkMxLjMzODk4IC0zLjUxNDgyIDAuODQ0ODMyIC0yLjM5OSAwLjg0NDgzMiAtMi4yOTUzOUMwLjg0NDgzMiAtMi4yMjM2NiAwLjkwMDYyMyAtMi4xOTE3OCAwLjk2NDM4NCAtMi4xOTE3OEMxLjA1MjA1IC0yLjE5MTc4IDEuMDYwMDIgLTIuMjE1NjkgMS4xMTU4MiAtMi4zMzUyNEMxLjM1NDkyIC0yLjg4NTE4IDEuNzYxMzkgLTMuMjkxNjYgMi4xNTk5IC0zLjI5MTY2QzIuMzI3MjcgLTMuMjkxNjYgMi40MjI5MSAtMy4xODAwNyAyLjQyMjkxIC0yLjkxNzA2QzIuNDIyOTEgLTIuODA1NDggMi4zOTkgLTIuNjkzOSAyLjM3NTA5IC0yLjU4MjMyTDEuNjI1OSAwLjM5ODUwNlonIGlkPSdnMi0xMDYnLz4KPHBhdGggZD0nTTIuMzI3MjcgLTUuMjkyMTVDMi4zMzUyNCAtNS4zMDgwOSAyLjM1OTE1IC01LjQxMTcxIDIuMzU5MTUgLTUuNDE5NjhDMi4zNTkxNSAtNS40NTk1MyAyLjMyNzI3IC01LjUzMTI2IDIuMjMxNjMgLTUuNTMxMjZDMi4xOTk3NSAtNS41MzEyNiAxLjk1MjY4IC01LjUwNzM1IDEuNzY5MzYgLTUuNDkxNDFMMS4zMjMwNCAtNS40NTk1M0MxLjE0NzcgLTUuNDQzNTkgMS4wNjggLTUuNDM1NjIgMS4wNjggLTUuMjkyMTVDMS4wNjggLTUuMTgwNTcgMS4xNzk1OCAtNS4xODA1NyAxLjI3NTIyIC01LjE4MDU3QzEuNjU3NzggLTUuMTgwNTcgMS42NTc3OCAtNS4xMzI3NSAxLjY1Nzc4IC01LjA2MTAyQzEuNjU3NzggLTUuMDM3MTEgMS42NTc3OCAtNS4wMjExNyAxLjYxNzkzIC00Ljg3NzcxTDAuNDg2MTc3IC0wLjM0MjcxNUMwLjQ1NDI5NiAtMC4yMjMxNjMgMC40NTQyOTYgLTAuMTc1MzQyIDAuNDU0Mjk2IC0wLjE2NzM3MkMwLjQ1NDI5NiAtMC4wMzE4ODA0IDAuNTY1ODc4IDAuMDc5NzAxMSAwLjc3NzMxIDAuMDc5NzAxMUMwLjk4ODI5NCAwLjA3OTcwMTEgMS4wNTIwNSAtMC4xNzUzNDIgMS4wODM5NCAtMC4yODY5MjRDMS4xNjM2NCAtMC42MjE2NjkgMS4zNzA4NiAtMS40NjY1IDEuNDU4NTMgLTEuODAxMjVDMS44OTY4OSAtMS43NTM0MiAyLjQzMDg4IC0xLjYwMTk5IDIuNDMwODggLTEuMTQ3N0MyLjQzMDg4IC0xLjEwNzg1IDIuNDMwODggLTEuMDY4IDIuNDE0OTQgLTAuOTg4Mjk0QzIuMzkxMDMgLTAuODg0NjgyIDIuMzc1MDkgLTAuNzczMTAxIDIuMzc1MDkgLTAuNzMzMjVDMi4zNzUwOSAtMC4yNjMwMTQgMi43MjU3OCAwLjA3OTcwMTEgMy4xODgwNCAwLjA3OTcwMTFDMy41MjI3OSAwLjA3OTcwMTEgMy43MzAwMSAtMC4xNjczNzIgMy44MzM2MiAtMC4zMTg4MDRDNC4wMjQ5MSAtMC42MTM2OTkgNC4xNTI0MyAtMS4wOTE5MSA0LjE1MjQzIC0xLjEzOTczQzQuMTUyNDMgLTEuMjE5NDMgNC4wODg2NyAtMS4yNDMzNCA0LjAzMjg4IC0xLjI0MzM0QzMuOTM3MjQgLTEuMjQzMzQgMy45MjEzIC0xLjE5NTUyIDMuODg5NDEgLTEuMDUyMDVDMy43ODU4IC0wLjY3NzQ2IDMuNTc4NTggLTAuMTQzNDYyIDMuMjAzOTkgLTAuMTQzNDYyQzIuOTk2NzYgLTAuMTQzNDYyIDIuOTQ4OTQgLTAuMzE4ODA0IDIuOTQ4OTQgLTAuNTMzOTk4QzIuOTQ4OTQgLTAuNjM3NjA5IDIuOTU2OTEgLTAuNzMzMjUgMi45OTY3NiAtMC45MTY1NjNDMy4wMDQ3MyAtMC45NDg0NDMgMy4wMzY2MSAtMS4wNzU5NyAzLjAzNjYxIC0xLjE2MzY0QzMuMDM2NjEgLTEuODE3MTkgMi4yMTU2OSAtMS45NjA2NSAxLjgwOTIyIC0yLjAxNjQ0QzIuMTA0MTEgLTIuMTkxNzggMi4zNzUwOSAtMi40NjI3NiAyLjQ3MDczIC0yLjU2NjM4QzIuOTA5MDkgLTIuOTk2NzYgMy4yNjc3NSAtMy4yOTE2NiAzLjY1MDMxIC0zLjI5MTY2QzMuNzUzOTIgLTMuMjkxNjYgMy44NDk1NiAtMy4yNjc3NSAzLjkxMzMzIC0zLjE4ODA0QzMuNDgyOTQgLTMuMTMyMjUgMy40ODI5NCAtMi43NTc2NiAzLjQ4Mjk0IC0yLjc0OTY5QzMuNDgyOTQgLTIuNTc0MzUgMy42MTg0MyAtMi40NTQ3OSAzLjc5Mzc3IC0yLjQ1NDc5QzQuMDA4OTcgLTIuNDU0NzkgNC4yNDgwNyAtMi42MzAxNCA0LjI0ODA3IC0yLjk1NjkxQzQuMjQ4MDcgLTMuMjI3OSA0LjA1Njc5IC0zLjUxNDgyIDMuNjU4MjggLTMuNTE0ODJDMy4xOTYwMSAtMy41MTQ4MiAyLjc4MTU3IC0zLjE2NDEzIDIuMzI3MjcgLTIuNzA5ODRDMS44NjUwMSAtMi4yNTU1NCAxLjY2NTc1IC0yLjE2Nzg3IDEuNTM4MjMgLTIuMTEyMDhMMi4zMjcyNyAtNS4yOTIxNVonIGlkPSdnMi0xMDcnLz4KPHBhdGggZD0nTTUuMjYwMjcgLTIuNjMwMTRDNS4zMzIiAtMi44MTM0NSA1LjQ2NzUgLTMuMTY0MTMgNS45Mzc3MyAtMy4xNzIxVi0zLjQzNTEyQzUuNjc0NzIgLTMuNDExMjEgNS42NTg3OCAtMy40MTEyMSA1LjMxNjA2IC0zLjQxMTIxQzUuMDYxMDIgLTMuNDExMjEgNC44NDU4MyAtMy40MTEyMSA0LjU5MDc4IC0zLjQzNTEyVi0zLjE3MjFDNC45NDE0NyAtMy4xNTYxNiA1LjAyOTE0IC0yLjk0ODk0IDUuMDI5MTQgLTIuODA1NDhDNS4wMjkxNCAtMi43MDk4NCA1LjAwNTIzIC0yLjY2MjAyIDQuOTg5MjkgLTIuNjA2MjNMNC4yMzIxMyAtMC42MjE2NjlMMy40MTEyMSAtMi43OTc1MUMzLjM3MTM2IC0yLjkwMTEyIDMuMzcxMzYgLTIuOTI1MDMgMy4zNzEzNiAtMi45NTY5MUMzLjM3MTM2IC0zLjE2NDEzIDMuNjI2NCAtMy4xNzIxIDMuODE3NjggLTMuMTcyMVYtMy40MzUxMkMzLjUwNjg1IC0zLjQxMTIxIDMuMDg0NDMgLTMuNDExMjEgMy4wMDQ3MyAtMy40MTEyMUMyLjgyOTM5IC0zLjQxMTIxIDIuNTAyNjIgLTMuNDExMjEgMi4yNjM1MSAtMy40MzUxMlYtMy4xNzIxQzIuNzQ5NjkgLTMuMTcyMSAyLjc2NTYzIC0zLjEzMjI1IDIuOTE3MDYgLTIuNzA5ODRMMi4xODM4MSAtMC43NDEyMkwxLjM5NDc3IC0yLjgwNTQ4QzEuMzg2OCAtMi44MzczNiAxLjM1NDkyIC0yLjkyNTAzIDEuMzU0OTIgLTIuOTU2OTFDMS4zNTQ5MiAtMy4xNzIxIDEuNjU3NzggLTMuMTcyMSAxLjgwMTI1IC0zLjE3MjFWLTMuNDM1MTJDMS40NTg1MyAtMy40MTEyMSAxLjA5OTg4IC0zLjQxMTIxIDAuOTQ4NDQzIC0zLjQxMTIxQzAuODA0OTgxIC0zLjQxMTIxIDAuMzk4NTA2IC0zLjQxMTIxIDAuMTY3MzcyIC0zLjQzNTEyVi0zLjE3MjFDMC41NjU4NzggLTMuMTcyMSAwLjY0NTU3OSAtMy4xNDAyMiAwLjczMzI1IC0yLjkxNzA2TDEuODAxMjUgLTAuMTExNTgyQzEuODQ5MDcgMC4wMDc5NzAxMSAxLjg3Mjk4IDAuMDc5NzAxMSAyLjAwMDUgMC4wNzk3MDExQzIuMTM1OTkgMC4wNzk3MDExIDIuMTY3ODcgLTAuMDA3OTcwMTEgMi4yMDc3MiAtMC4xMTE1ODJMMy4wNTI1NSAtMi4zNTExOEwzLjg5NzM4IC0wLjExMTU4MkMzLjkzNzI0IC0wLjAwNzk3MDExIDMuOTY5MTIgMC4wNzk3MDExIDQuMTA0NjEgMC4wNzk3MDExQzQuMjMyMTMgMC4wNzk3MDExIDQuMjY0MDEgMCA0LjI5NTg5IC0wLjA4NzY3MTJMNS4yNjAyNyAtMi42MzAxNFonIGlkPSdnNC00OScvPgo8cGF0aCBkPSdNNS44MjYxNSAtMi42NTQwNUM1Ljk0NTcgLTIuNjU0MDUgNi4xMDUxMSAtMi42NTQwNSA2LjEwNTExIC0yLjgzNzM2UzUuOTEzODIgLTMuMDIwNjcgNS43OTQyNyAtMy4wMjA2N0gwLjc4MTA3MUMwLjY2MTUxOSAtMy4wMjA2NyAwLjQ3MDIzNyAtMy4wMjA2NyAwLjQ3MDIzNyAtMi44MzczNlMwLjYyOTYzOSAtMi42NTQwNSAwLjc0OTE
где и, следовательно
and the value of
= self.strides[k]произвольно.- Если у массива нет элементов (
self.size == 0) , то нет законного индекса, и шаги никогда не используются. Любой массив без элементов может считаться C-стилевым и Fortran-стилевым непрерывным.
Пункт 1. означает, что self и self.squeeze() всегда имеют одинаковые значения непрерывности и флагов выравнивания. Это также означает, что даже многомерный массив может быть одновременно C-стилевым и Fortran-стилевым непрерывным.
Массив считается выровненным, если смещения памяти для всех элементов и самого базового смещения являются кратными self.itemsize.
Примечание
Пункты (1) и (2) пока не применяются по умолчанию. Начиная с NumPy 1.8.0, они применяются согласованно только в том случае, если переменная среды NPY_RELAXED_STRIDES_CHECKING=1 была определена при сборке NumPy. В конечном итоге это станет стандартным поведением.
Вы можете проверить, был ли включен этот параметр при сборке вашего NumPy, посмотрев значение np.ones((10,1),
order='C').flags.f_contiguous. Если это True, то в вашем NumPy включена проверка шагов с ослаблением.
Предупреждение
В общем случае неверно, что self.strides[-1] == self.itemsize для C-стилевых непрерывных массивов или self.strides[0] == self.itemsize для Fortran-стилевых непрерывных массивов является истинным.
Данные в новом ndarrays находятся в порядке строчно-главный (C), если не указано иное, но, например, базовое срезание массива часто производит представления в другой схеме.
Примечание
Некоторые алгоритмы в NumPy работают с массивами с произвольными шагами. Однако некоторые алгоритмы требуют массивов с одним сегментом. Когда в такие алгоритмы передается массив с нерегулярными шагами, автоматически создаётся копия.
Атрибуты массива
Атрибуты массива отражают информацию, которая является неотъемлемой частью самого массива. Обычно доступ к массиву через его атрибуты позволяет получить и иногда установить неотъемлемые свойства массива без создания нового массива. Доступные атрибуты — это основные части массива, и только некоторые из них можно осмысленно сбросить без создания нового массива. Ниже приведена информация по каждому атрибуту.
Расположение в памяти
Следующие атрибуты содержат информацию о расположении массива в памяти:
ndarray.flags | Информация о расположении массива в памяти. |
ndarray.shape | Кортеж размеров массива. |
ndarray.strides | Кортеж байтов для перемещения по каждому измерению при проходе по массиву. |
ndarray.ndim | Число измерений массива. |
ndarray.data | Объект буфера Python, указывающий на начало данных массива. |
ndarray.size | Число элементов в массиве. |
ndarray.itemsize | Длина одного элемента массива в байтах. |
ndarray.nbytes | Общее количество байтов, занимаемых элементами массива. |
ndarray.base | Базовый объект, если память взята из другого объекта. |
Тип данных
См. также
Объект типа данных, связанный с массивом, можно найти в атрибуте dtype:
ndarray.dtype | Тип данных элементов массива. |
Другие атрибуты
ndarray.T | То же, что и self.transpose(), за исключением того, что self возвращается, если self.ndim < 2. |
ndarray.real | Вещественная часть массива. |
ndarray.imag | Мнимая часть массива. |
ndarray.flat | Итератор по массиву в виде одномерного массива. |
ndarray.ctypes | Объект, упрощающий взаимодействие массива с модулем ctypes. |
Интерфейс массива
См. также
__array_interface__ | Сторона Python интерфейса массива |
__array_struct__ | Сторона C интерфейса массива |
ctypes интерфейс внешних функций
ndarray.ctypes | Объект для упрощения взаимодействия массива с модулем ctypes. |
Методы массивов
Объект ndarray имеет множество методов, которые действуют с массивом или на массив, обычно возвращая результат в виде массива. Ниже приведены краткие объяснения этих методов. (Более полное описание содержится в документации к каждому методу.)
Для следующих методов также существуют соответствующие функции в numpy: all, any, argmax, argmin, argpartition, argsort, choose, clip, compress, copy, cumprod, cumsum, diagonal, imag, max, mean, min, nonzero, partition, prod, ptp, put, ravel, real, repeat, reshape, round, searchsorted, sort, squeeze, std, sum, swapaxes, take, trace, transpose, var.
Преобразование массивов
ndarray.item(*args) | Копирует элемент массива в стандартный скаляр Python и возвращает его. |
ndarray.tolist() | Возвращает массив в виде (возможно, вложенного) списка. |
ndarray.itemset(*args) | Вставляет скаляр в массив (скаляр приводится к типу данных массива, если это возможно). |
ndarray.tostring([order]) | Создаёт строку Python, содержащую сырые байты данных массива. |
ndarray.tobytes([order]) | Создаёт строку Python, содержащую сырые байты данных массива. |
ndarray.tofile(fid[, sep, format]) | Записывает массив в файл в виде текста или двоичных данных (по умолчанию). |
ndarray.dump(file) | Сохраняет пикл массива в указанный файл. |
ndarray.dumps() | Возвращает пикл массива в виде строки. |
ndarray.astype(dtype[, order, casting, …]) | Копия массива, преобразованная к указанному типу. |
ndarray.byteswap([inplace]) | Меняет порядок байтов элементов массива. |
ndarray.copy([order]) | Возвращает копию массива. |
ndarray.view([dtype, type]) | Новый вид массива с теми же данными. |
ndarray.getfield(dtype[, offset]) | Возвращает поле данного массива как определённого типа. |
ndarray.setflags([write, align, uic]) | Устанавливает флаги массива WRITEABLE, ALIGNED, (WRITEBACKIFCOPY и UPDATEIFCOPY) соответственно. |
ndarray.fill(value) | Заполняет массив скалярным значением. |
Изменение формы
Для reshape, resize и transpose единственный аргумент кортежа может быть заменён на n целых числа, которые будут интерпретированы как n-кортеж.
ndarray.reshape(shape[, order]) | Возвращает массив, содержащий те же данные с новой формой. |
ndarray.resize(new_shape[, refcheck]) | Изменяет форму и размер массива на месте. |
ndarray.transpose(*axes) | Возвращает представление массива с переставленными осями. |
ndarray.swapaxes(axis1, axis2) | Возвращает представление массива с осями axis1 и axis2 поменяными местами. |
ndarray.flatten([order]) | Возвращает копию массива, свёрнутого в одномерный массив. |
ndarray.ravel([order]) | Возвращает уплощенный массив. |
ndarray.squeeze([axis]) | Удаляет одномерные элементы из формы массива a. |
Выбор и изменение элементов
Для методов массивов, принимающих ключевое слово axis, оно по умолчанию равно None. Если axis равно None, то массив обрабатывается как одномерный массив. Любое другое значение для axis представляет собой измерение, вдоль которого должно происходить действие.
ndarray.take(indices[, axis, out, mode]) | Возвращает массив, образованный из элементов a по заданным индексам. |
ndarray.put(indices, values[, mode]) | Устанавливает a.flat[n] = values[n] для всех n в индексах. |
ndarray.repeat(repeats[, axis]) | Повторяет элементы массива. |
ndarray.choose(choices[, out, mode]) | Использует массив индексов для построения нового массива из набора вариантов. |
ndarray.sort([axis, kind, order]) | Сортирует массив на месте. |
ndarray.argsort([axis, kind, order]) | Возвращает индексы, которые отсортировали бы этот массив. |
ndarray.partition(kth[, axis, kind, order]) | Переупорядочивает элементы в массиве таким образом, что значение элемента в позиции kth находится в той позиции, в которой оно находилось бы в отсортированном массиве. |
ndarray.argpartition(kth[, axis, kind, order]) | Возвращает индексы, которые разделили бы этот массив. |
ndarray.searchsorted(v[, side, sorter]) | Находит индексы, где элементы v должны быть вставлены в a, чтобы сохранить порядок. |
ndarray.nonzero() | Возвращает индексы элементов, которые не равны нулю. |
ndarray.compress(condition[, axis, out]) | Возвращает выбранные срезы этого массива вдоль заданной оси. |
ndarray.diagonal([offset, axis1, axis2]) | Возвращает указанные диагонали. |
Вычисление
Многие из этих методов принимают аргумент axis. В таких случаях,
- Если axis равно None (по умолчанию), массив обрабатывается как одномерный массив, и операция выполняется по всему массиву. Это поведение также является по умолчанию, если self является массивом размерности 0 или скалярным массивом. (Скалярный массив — это экземпляр типов/классов float32, float64 и т. д., а массив размерности 0 — это экземпляр ndarray, содержащий ровно один скалярный массив.)
- Если axis — целое число, то операция выполняется по заданной оси (для каждого одномерного подмассива, который можно создать вдоль заданной оси).
Пример аргумента axis
Трехмерный массив размером 3 x 3 x 3, суммированный по каждой из его трех осей
>>> x
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
>>> x.sum(axis=0)
array([[27, 30, 33],
[36, 39, 42],
[45, 48, 51]])
>>> # for sum, axis is the first keyword, so we may omit it,
>>> # specifying only its value
>>> x.sum(0), x.sum(1), x.sum(2)
(array([[27, 30, 33],
[36, 39, 42],
[45, 48, 51]]),
array([[ 9, 12, 15],
[36, 39, 42],
[63, 66, 69]]),
array([[ 3, 12, 21],
[30, 39, 48],
[57, 66, 75]]))
Параметр dtype определяет тип данных, по которому должна выполняться операция сокращения (например, суммирование). Тип данных по умолчанию для сокращения — такой же, как тип данных self. Для предотвращения переполнения полезно выполнить сокращение с использованием более крупного типа данных.
Для нескольких методов также можно указать необязательный аргумент out, и результат будет помещен в заданный массив вывода. Аргумент out должен быть ndarray и иметь такое же количество элементов. Он может иметь другой тип данных, в этом случае будет выполнено приведение.
ndarray.argmax([axis, out]) | Возвращает индексы максимальных значений вдоль заданной оси. |
ndarray.min([axis, out, keepdims]) | Возвращает минимум по заданной оси. |
ndarray.argmin([axis, out]) | Возвращает индексы минимальных значений вдоль заданной оси массива a. |
ndarray.ptp([axis, out]) | Значение пик-к-пик (максимум - минимум) вдоль заданной оси. |
ndarray.clip([min, max, out]) | Возвращает массив, значения которого ограничены [min, max]. |
ndarray.conj() | Комплексно сопряженные все элементы. |
ndarray.round([decimals, out]) | Возвращает a с каждым элементом, округленным до заданного количества десятичных знаков. |
ndarray.trace([offset, axis1, axis2, dtype, out]) | Возвращает сумму по диагоналям массива. |
ndarray.sum([axis, dtype, out, keepdims]) | Возвращает сумму элементов массива по заданной оси. |
ndarray.cumsum([axis, dtype, out]) | Возвращает кумулятивную сумму элементов по заданной оси. |
ndarray.mean([axis, dtype, out, keepdims]) | Возвращает среднее значение элементов массива по заданной оси. |
ndarray.var([axis, dtype, out, ddof, keepdims]) | Возвращает дисперсию элементов массива по заданной оси. |
ndarray.std([axis, dtype, out, ddof, keepdims]) | Возвращает стандартное отклонение элементов массива по заданной оси. |
ndarray.prod([axis, dtype, out, keepdims]) | Возвращает произведение элементов массива по заданной оси. |
ndarray.cumprod([axis, dtype, out]) | Возвращает кумулятивное произведение элементов по заданной оси. |
ndarray.all([axis, out, keepdims]) | Возвращает True, если все элементы равны True. |
ndarray.any([axis, out, keepdims]) | Возвращает True, если любой из элементов a равен True. |
Арифметические, матричные умножения и операции сравнения
Арифметические и операции сравнения с ndarrays определены как поэлементные операции и обычно возвращают объекты ndarray в качестве результатов.
Каждая арифметическая операция (+, -, *, /, //, %, divmod(), ** или pow(), <<, >>, &, ^, |, ~) и сравнения (==, <, >, <=, >=, !=) эквивалентна соответствующей универсальной функции (или ufunc для краткости) в NumPy. Более подробную информацию можно найти в разделе о Универсальные функции.
Операторы сравнения:
ndarray.__lt__($self, value, /) | Возвращает self<value. |
ndarray.__le__($self, value, /) | Возвращает self<=value. |
ndarray.__gt__($self, value, /) | Возвращает self>value. |
ndarray.__ge__($self, value, /) | Возвращает self>=value. |
ndarray.__eq__($self, value, /) | Возвращает self==value. |
ndarray.__ne__($self, value, /) | Возвращает self!=value. |
Логическое значение массива (bool):
ndarray.__nonzero__ |
Примечание
Проверка истинности массива вызывает ndarray.__nonzero__, что вызывает ошибку, если количество элементов в массиве больше 1, потому что истинностное значение таких массивов неоднозначно. Используйте .any() и .all() вместо этого, чтобы быть ясными в таких случаях. (Если количество элементов равно 0, массив оценивается как False.)
Унарные операции:
ndarray.__neg__($self, /) | -self |
ndarray.__pos__($self, /) | +self |
ndarray.__abs__(self) | |
ndarray.__invert__($self, /) | ~self |
Арифметика:
ndarray.__add__($self, value, /) | Возвращает self+value. |
ndarray.__sub__($self, value, /) | Возвращает self-value. |
ndarray.__mul__($self, value, /) | Возвращает self*value. |
ndarray.__div__ | |
ndarray.__truediv__($self, value, /) | Возвращает self/value. |
ndarray.__floordiv__($self, value, /) | Возвращает self//value. |
ndarray.__mod__($self, value, /) | Возвращает self%value. |
ndarray.__divmod__($self, value, /) | Возвращает divmod(self, value). |
ndarray.__pow__($self, value[, mod]) | Возвращает pow(self, value, mod). |
ndarray.__lshift__($self, value, /) | Возвращает self<<value. |
ndarray.__rshift__($self, value, /) | Возвращает self>>value. |
ndarray.__and__($self, value, /) | Возвращает self&value. |
ndarray.__or__($self, value, /) | Возвращает self|value. |
ndarray.__xor__($self, value, /) | Возвращает self^value. |
Примечание
- Любой третий аргумент функции
powигнорируется, так как функцияufuncпринимает только два аргумента. - Все три оператора деления определены;
divактивен по умолчанию,truedivактивен, когда деление__future__включено. - Поскольку
ndarrayявляется встроенным типом (написанным на C), специальные методы__r{op}__не определены напрямую. - Функции, вызываемые для реализации многих арифметических специальных методов для массивов, могут быть изменены с помощью
set_numeric_ops.
Арифметика, по месту:
ndarray.__iadd__($self, value, /) | Возвращает self+=value. |
ndarray.__isub__($self, value, /) | Возвращает self-=value. |
ndarray.__imul__($self, value, /) | Возвращает self*=value. |
ndarray.__idiv__ | |
ndarray.__itruediv__($self, value, /) | Возвращает self/=value. |
ndarray.__ifloordiv__($self, value, /) | Возвращает self//=value. |
ndarray.__imod__($self, value, /) | Возвращает self%=value. |
ndarray.__ipow__($self, value, /) | Возвращает self**=value. |
ndarray.__ilshift__($self, value, /) | Возвращает self<<=value. |
ndarray.__irshift__($self, value, /) | Возвращает self>>=value. |
ndarray.__iand__($self, value, /) | Возвращает self&=value. |
ndarray.__ior__($self, value, /) | Возвращает self|=value. |
ndarray.__ixor__($self, value, /) | Возвращает self^=value. |
Предупреждение
Операции на месте выполняют вычисления с точностью, определяемой типом данных двух операндов, но при этом неявным образом понижают точность результата (при необходимости), чтобы он мог поместиться обратно в массив. Поэтому для вычислений с разной точностью A {op}=
B может отличаться от A = A {op} B. Например, предположим, что a = ones((3,3)). Тогда a += 3j отличается от a = a +
3j: хотя оба они выполняют одно и то же вычисление, a += 3 преобразует результат для соответствия массиву a, а a = a + 3j привязывает имя a к результату.
Умножение матриц:
ndarray.__matmul__($self, value, /) | Возвращает self@value. |
Примечание
Операторы матриц @ и @= были введены в Python 3.5 после PEP465. NumPy 1.10.0 имеет предварительную реализацию @ для целей тестирования. Более подробная информация содержится в документации matmul.
Специальные методы
Для функций стандартной библиотеки:
ndarray.__copy__() | Используется, если вызывается copy.copy для массива. |
ndarray.__deepcopy__(memo, /) | Используется, если вызывается copy.deepcopy для массива. |
ndarray.__reduce__() | Для сериализации. |
ndarray.__setstate__(state, /) | Для десериализации. |
Базовая настройка:
ndarray.__new__($type, *args, **kwargs) | Создать и вернуть новый объект. |
ndarray.__array__(|dtype) | Возвращает либо новую ссылку на self, если dtype не задан, либо новый массив заданного типа данных, если dtype отличается от текущего типа данных массива. |
ndarray.__array_wrap__(obj) |
Настройка контейнера: (см. Индексирование)
ndarray.__len__($self, /) | Возвращает len(self). |
ndarray.__getitem__($self, key, /) | Возвращает self[key]. |
ndarray.__setitem__($self, key, value, /) | Устанавливает self[key] в значение value. |
ndarray.__contains__($self, key, /) | Возвращает key in self. |
Преобразование; операции complex, int, long, float, oct, и hex. Они работают только с массивами, содержащими один элемент, и возвращают соответствующее скалярное значение.
ndarray.__int__(self) | |
ndarray.__long__ | |
ndarray.__float__(self) | |
ndarray.__oct__ | |
ndarray.__hex__ |
Строковые представления:
ndarray.__str__($self, /) | Возвращает str(self). |
ndarray.__repr__($self, /) | Возвращает repr(self). |
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/arrays.ndarray.html