Python中的 numpy.ravel()
numpy.ravel()函数返回连续的扁平数组(包含所有输入数组元素且类型相同的一维数组)。仅在需要时制作副本。
句法 :
numpy.ravel(array, order = 'C')
参数 :
array : [array_like]Input array.
order : [C-contiguous, F-contiguous, A-contiguous; optional]
C-contiguous order in memory(last index varies the fastest)
C order means that operating row-rise on the array will be slightly quicker
FORTRAN-contiguous order in memory (first index varies the fastest).
F order means that column-wise operations will be faster.
‘A’ means to read / write the elements in Fortran-like index order if,
array is Fortran contiguous in memory, C-like order otherwise
返回 :
Flattened array having same type as the Input array and and order as per choice.
代码 1:表明 array.ravel 等价于 reshape(-1, order=order)
Python
# Python Program illustrating
# numpy.ravel() method
import numpy as geek
array = geek.arrange(15).reshape(3, 5)
print("Original array : \n", array)
# Output comes like [ 0 1 2 ..., 12 13 14]
# as it is a long output, so it is the way of
# showing output in Python
print("\nravel() : ", array.ravel())
# This shows array.ravel is equivalent to reshape(-1, order=order).
print("\nnumpy.ravel() == numpy.reshape(-1)")
print("Reshaping array : ", array.reshape(-1))
Python
# Python Program illustrating
# numpy.ravel() method
import numpy as geek
array = geek.arrange(15).reshape(3, 5)
print("Original array : \n", array)
# Output comes like [ 0 1 2 ..., 12 13 14]
# as it is a long output, so it is the way of
# showing output in Python
# About :
print("\nAbout numpy.ravel() : ", array.ravel)
print("\nnumpy.ravel() : ", array.ravel())
# Maintaining both 'A' and 'F' order
print("\nMaintains A Order : ", array.ravel(order = 'A'))
# K-order preserving the ordering
# 'K' means that is neither 'A' nor 'F'
array2 = geek.arrange(12).reshape(2,3,2).swapaxes(1,2)
print("\narray2 \n", array2)
print("\nMaintains A Order : ", array2.ravel(order = 'K'))
输出 :
Original array :
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
ravel() : [ 0 1 2 ..., 12 13 14]
numpy.ravel() == numpy.reshape(-1)
Reshaping array : [ 0 1 2 ..., 12 13 14]
代码 2:显示排序操作
Python
# Python Program illustrating
# numpy.ravel() method
import numpy as geek
array = geek.arrange(15).reshape(3, 5)
print("Original array : \n", array)
# Output comes like [ 0 1 2 ..., 12 13 14]
# as it is a long output, so it is the way of
# showing output in Python
# About :
print("\nAbout numpy.ravel() : ", array.ravel)
print("\nnumpy.ravel() : ", array.ravel())
# Maintaining both 'A' and 'F' order
print("\nMaintains A Order : ", array.ravel(order = 'A'))
# K-order preserving the ordering
# 'K' means that is neither 'A' nor 'F'
array2 = geek.arrange(12).reshape(2,3,2).swapaxes(1,2)
print("\narray2 \n", array2)
print("\nMaintains A Order : ", array2.ravel(order = 'K'))
输出 :
Original array :
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
About numpy.ravel() :
numpy.ravel() : [ 0 1 2 ..., 12 13 14]
Maintains A Order : [ 0 1 2 ..., 12 13 14]
array2
[[[ 0 2 4]
[ 1 3 5]]
[[ 6 8 10]
[ 7 9 11]]]
Maintains A Order : [ 0 1 2 ..., 9 10 11]