NumPy 函数

NumPy ndarray.flatten() 函数返回折叠成一维的数组的副本。使用该函数的语法如下:

语法

numpy.ndarray.flatten(order='C') 

参数

order可选。 指定顺序。它可以从 {'C', 'F', 'A', 'K'} 中获取值。默认值为"C"。
  • 'C' - 按行主(C 样式)顺序展平。
  • 'F' - 按列主(Fortran 样式)顺序展平。
  • 'A' - 如果 a 在内存中是 Fortran 连续的,则按列优先顺序展平,否则按行优先顺序展平。
  • 'K' - 按照元素在内存中出现的顺序展平数组。

返回值

返回输入数组的副本,并展平为一维。

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

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

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])

#展平数组
Narr = arr.flatten(order='C')

print("原始数组:")
print(arr)
print("\n展平后的数组:")
print(Narr) 

上述代码的输出将是:

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

展平后的数组:
[1 2 3 4 5 6] 

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

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

import numpy as np
arr = np.array([[1,2,3],[4,5,6]])

#展平数组
Narr = arr.flatten(order='F')

print("原始数组:")
print(arr)
print("\n展平后的数组:")
print(Narr) 

上述代码的输出将是:

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

展平后的数组:
[1 4 2 5 3 6] 

示例:带有 order='K' 的 flatten()

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

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

#使用 order='C' 进行展平
print("\nFlattened Array (axis='C'):")
print(arr.flatten(order='C'))

#使用 order='K' 进行展平
print("\nFlattened Array (axis='K'):")
print(arr.flatten(order='K')) 

上述代码的输出将是:

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

 [[ 4  6]
  [ 5  7]]

 [[ 8 10]
  [ 9 11]]]

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

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