numpy.ravel
-
numpy.ravel(a, order='C')[source] -
Возвращает непрерывный сплющенный массив.
Возвращается одномерный массив, содержащий элементы входного массива. Копия создается только в случае необходимости.
Начиная с NumPy 1.10, возвращаемый массив будет иметь тот же тип, что и входной массив. (например, для входного массива-маскированного массива будет возвращён массив-маска).
- Параметры
-
-
aarray_like -
Входной массив. Элементы в
aсчитываются в порядке, указанном вorder, и упаковываются в одномерный массив. -
order{‘C’,’F’, ‘A’, ‘K’}, optional -
Элементы
aсчитываются с использованием этого порядка индексов. ‘C’ означает считывание элементов в строчном порядке (порядок C), где индекс последнего осей изменяется быстрее, а индекс первой оси изменяется медленнее. ‘F’ означает считывание элементов в столбцовом порядке (порядок Fortran), где индекс первого осей изменяется быстрее, а индекс последней осей изменяется медленнее. Обратите внимание, что параметры ‘C’ и ‘F’ не учитывают расположение массива в памяти, а относятся только к порядку индексации осей. ‘A’ означает считывание элементов в порядке индексации, подобном Fortran, еслиaявляется Fortran-непрерывным в памяти, иначе — в порядке C. ‘K’ означает считывание элементов в том порядке, в котором они встречаются в памяти, за исключением реверсирования данных при отрицательных шагах. По умолчанию используется порядок индексации ‘C’.
-
- Возвращает
-
-
yarray_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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.ravel.html