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является фортран-последовательным в памяти, в противном случае используется порядок как в 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]]) >>> print(np.ravel(x)) [1 2 3 4 5 6]
>>> print(x.reshape(-1)) [1 2 3 4 5 6]
>>> print(np.ravel(x, order='F')) [1 4 2 5 3 6]
Когда
orderравно ‘A’, он сохранит порядок массива ‘C’ или ‘F’:>>> print(np.ravel(x.T)) [1 4 2 5 3 6] >>> print(np.ravel(x.T, order='A')) [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.15.4/reference/generated/numpy.ravel.html