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
Если
aявляется матрицей, y является одномерным ndarray, в противном случае y - массив того же подтипа, что иa. Форма возвращаемого массива(a.size,). Матрицы обрабатываются как особый случай для обратной совместимости.См. также
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])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.ravel.html