NumPy 函数

NumPy ravel() 函数返回一个连续的扁平数组。使用该函数的语法如下:

语法

numpy.ravel(a, order='C') 

参数

a必填。 指定输入数组。
order可选。 指定顺序。使用此索引顺序读取数组的元素。它可以采用四个可能的值。默认值为"C"。
  • 'C' - 以行主、C 风格顺序读取元素索引,最后一个轴索引变化最快,回到第一个轴索引变化最慢。
  • ' F' - 以列主、Fortran 风格的顺序读取元素的索引,第一个索引变化最快,最后一个索引变化最慢。
  • 'A' - 以类似 Fortran 的方式读取元素如果 a 在内存中是 Fortran 连续的,则索引顺序,否则类似于 C 的顺序。
  • 'K' - 按照元素在内存中出现的顺序读取元素,除非当步长为负时反转数据。
  • 'K' - 按照元素在内存中出现的顺序读取元素。
注意:'C' 和 'F' 选项不考虑底层数组的内存布局,仅涉及轴索引的顺序。

返回值

返回一个连续的扁平化数组,其数据类型与输入数组相同,且形状等于 (a.size ,)。

示例:ravel() 具有类似 C 的索引排序

默认情况下,ravel 函数使用行主(C 风格)顺序。考虑下面的示例。

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print("原始数组:")
print(arr)

#解开数组
Narr = np.ravel(arr, order='C')
print("\nRaveled Array:")
print(Narr) 

上述代码的输出将是:

原始数组:
[[1 2 3]
 [4 5 6]]

Raveled Array:
[1 2 3 4 5 6] 

示例:具有类似 F 索引排序的 ravel()

要按列主(Fortran 样式)顺序排列数组,请使用 order='F'。考虑下面的示例。

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print("原始数组:")
print(arr)

#解开数组
Narr = np.ravel(arr, order='F')
print("\nRaveled Array:")
print(Narr) 

上述代码的输出将是:

原始数组:
[[1 2 3]
 [4 5 6]]

Raveled Array:
[1 4 2 5 3 6] 

示例:ravel() with order='K'

当 order='K' 时,它将保留顺序,但不反转轴。有关更多详细信息,请参阅下面的示例。

import numpy as np
arr = np.arange(12).reshape(3,2,2).swapaxes(1,2);
print("原始数组:")
print(arr)

#ravel 使用 order='C'
print("\nRaveled Array (axis='C'):")
print(np.ravel(arr, order='C'))

#ravel 使用 order='K'
print("\nRaveled Array (axis='K'):")
print(np.ravel(arr, order='K')) 

上述代码的输出将是:

原始数组:
[[[ 0  2]
  [ 1  3]]

 [[ 4  6]
  [ 5  7]]

 [[ 8 10]
  [ 9 11]]]

Raveled Array (axis='C'):
[ 0  2  1  3  4  6  5  7  8 10  9 11]

Raveled Array (axis='K'):
[ 0  1  2  3  4  5  6  7  8  9 10 11]