NumPy ravel() 函数



NumPy 的ravel()函数通过提供一个包含与输入相同元素但只有一维的1D数组来返回一个扁平化的数组。

flatten()函数相比,ravel()函数在可能的情况下返回输入数组的扁平化视图,如果输入数组不是连续的,则返回一个副本。

ravel()函数对于某些操作来说更节省内存。它接受一个order参数,该参数可以是'C'、'F'、'A'或'K',以指定扁平化数组中元素的所需顺序。

语法

NumPy ravel()函数的语法如下:

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

参数

以下是 NumPy ravel()函数的参数:

  • a (array_like): 'a'中的元素根据order参数以行主序(C风格)或列主序(Fortran风格)读取。
  • order: {'C', 'F', 'A', 'K'}, 可选:指定读取元素的顺序。
    • 'C': 行主序(C风格)。
    • 'F': 列主序(Fortran风格)。
    • 'A': 如果数组存储在行主序内存中,则为行主序,否则为列主序。
    • 'K': 元素按其在内存中出现的顺序读取,但当步长为负时,会反转数据。

返回值

此函数返回一个1D数组,其中包含输入数组的元素,以扁平化的顺序排列。

示例 1

以下是 NumPy ravel()函数的示例,它展示了 ravel() 的基本用法,将一个 2D 数组扁平化为一个 1D 数组,以行主序排列。

import numpy as np

# Creating a 2D array
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

# Flattening the array
flattened_array = np.ravel(array_2d)

print("Original array:\n")
print(array_2d)
print("Flattened array:")
print(flattened_array)

输出

Original array:
 [[1 2 3]
  [4 5 6]]
Flattened array: [1 2 3 4 5 6]

示例 2

此示例说明了如何使用 numpy.ravel() 函数将一个 3D 数组扁平化为一个 1D 数组,遵循默认的行主序。

import numpy as np

# Creating a 3D array
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

# Flattening the array
flattened_array_3d = np.ravel(array_3d)

print("Original 3D array:\n")
print(array_3d)
print("Flattened array:")
print(flattened_array_3d)

输出

Original 3D array:
 [[[1 2]
   [3 4]]

  [[5 6]
   [7 8]]]
Flattened array: [1 2 3 4 5 6 7 8]
numpy_array_manipulation.htm
广告