numpy.ravel
-
numpy.ravel(a, order='C')[source] -
Возвращает сплошной, уплощенную массив.
Возвращается одномерный массив, содержащий элементы входного массива. Копия создаётся только в случае необходимости.
Начиная с NumPy 1.10, возвращаемый массив будет иметь тот же тип, что и входной массив. (например, для входного массива-маски, будет возвращён массив-маска).
Параметры: -
a : array_like -
Вводной массив. Элементы в
aсчитываются в порядке, заданномorder, и упаковываются в одномерный массив. -
order : {‘C’,’F’, ‘A’, ‘K’}, optional -
Элементы
aсчитываются с использованием этого порядка индексов. «C» означает чтение элементов в строчном порядке (порядке C), с индексом последней оси, изменяющимся быстрее, обратно к индексу первой оси, изменяющемуся медленнее. «F» означает чтение элементов в столбцовом порядке (порядке Fortran), с индексом первой оси, изменяющимся быстрее, а последней оси – медленнее. Обратите внимание, что опции «C» и «F» не учитывают расположение памяти в подлежащем массиве и относятся только к порядку индексации осей. «A» означает чтение элементов в порядке индексации, подобном Fortran, еслиaявляется Fortran-смежным в памяти, и в порядке C в противном случае. «K» означает чтение элементов в порядке их появления в памяти, за исключением переворачивания данных, когда шаги отрицательны. По умолчанию используется порядок индексации «C».
Возвращает: -
y : array_like -
y — это массив того же подтипа, что и
a, с формой(a.size,). Обратите внимание, что матрицы рассматриваются как специальные случаи для обеспечения обратной совместимости; еслиaявляется матрицей, то y является одномерным ndarray.
См. также
-
ndarray.flat - Одномерный итератор по массиву.
-
ndarray.flatten - Одномерная копия элементов массива в строчном порядке.
-
ndarray.reshape - Изменение формы массива без изменения его данных.
Примечания
В строчном порядке (порядке C) в двух измерениях индекс строки меняется медленнее, а индекс столбца – быстрее. Это может быть обобщено на многомерные случаи, где строчный порядок подразумевает, что индекс вдоль первой оси изменяется медленнее, а индекс вдоль последней – быстрее. Обратное верно для столбцового порядка (порядка Fortran).
Когда в возможно большем количестве случаев требуется представление вида,
arr.reshape(-1)может быть предпочтительнее.Примеры
Это эквивалентно
reshape(-1, order=order).>>> x = np.array([[1, 2, 3], [4, 5, 6]]) >>> np.ravel(x) array([1, 2, 3, 4, 5, 6])
>>> x.reshape(-1) array([1, 2, 3, 4, 5, 6])
>>> np.ravel(x, order='F') array([1, 4, 2, 5, 3, 6])
Когда
orderравно «A», это сохранит порядок массива «C» или «F»:>>> np.ravel(x.T) array([1, 4, 2, 5, 3, 6]) >>> np.ravel(x.T, order='A') array([1, 2, 3, 4, 5, 6])
Когда
orderравно «K», это сохранит порядок, который не является ни «C», ни «F», но не будет изменять оси:>>> a = np.arange(3)[::-1]; a array([2, 1, 0]) >>> a.ravel(order='C') array([2, 1, 0]) >>> a.ravel(order='K') array([2, 1, 0])
>>> a = np.arange(12).reshape(2,3,2).swapaxes(1,2); a array([[[ 0, 2, 4], [ 1, 3, 5]], [[ 6, 8, 10], [ 7, 9, 11]]]) >>> a.ravel(order='C') array([ 0, 2, 4, 1, 3, 5, 6, 8, 10, 7, 9, 11]) >>> a.ravel(order='K') array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.ravel.html