📜  Python中的 numpy.ravel()

📅  最后修改于: 2022-05-13 01:54:34.206000             🧑  作者: Mango

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]