Numpy 数组展平(Flatten)

Numpy 数组展平(Flatten)

在Numpy中,展平数组是将多维数组转换为一维数组。将数组展平后可以方便地对其进行操作。

阅读更多:Numpy 教程

方法一:使用ravel()函数

在Numpy中,可以使用ravel()函数将多维数组展平为一维数组。ravel()函数返回一个展平的数组,该数组和原始数组共享数据。

例子1:

import numpy as np

a = np.array([[1, 2], [3, 4]])
print("原始数组:")
print(a)

b = a.ravel()
print("展平后的数组:")
print(b)
Python

输出结果:

原始数组:
[[1 2]
 [3 4]]
展平后的数组:
[1 2 3 4]
Python

例子2:

import numpy as np

a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("原始数组:")
print(a)

b = a.ravel()
print("展平后的数组:")
print(b)
Python

输出结果:

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

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

方法二:使用flatten()函数

与ravel()函数类似,flatten()函数也可以将多维数组展平为一维数组。然而,flatten()函数返回的是原始数组的副本,而非共享数据。

例子1:

import numpy as np

a = np.array([[1, 2], [3, 4]])
print("原始数组:")
print(a)

b = a.flatten()
print("展平后的数组:")
print(b)
Python

输出结果:

原始数组:
[[1 2]
 [3 4]]
展平后的数组:
[1 2 3 4]
Python

例子2:

import numpy as np

a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("原始数组:")
print(a)

b = a.flatten()
print("展平后的数组:")
print(b)
Python

输出结果:

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

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

方法三:使用reshape()函数

在Numpy中,reshape()函数可以用于改变数组的形状。当改变数组的形状时,可以将数组展平为一维数组。

例子1:

import numpy as np

a = np.array([[1, 2], [3, 4]])
print("原始数组:")
print(a)

b = a.reshape(-1)
print("展平后的数组:")
print(b)
Python

输出结果:

原始数组:
[[1 2]
 [3 4]]
展平后的数组:
[1 2 3 4]
Python

例子2:

import numpy as np

a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("原始数组:")
print(a)

b = a.reshape(-1)
print("展平后的数组:")
print(b)
Python

输出结果:

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

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

方法四:使用flat属性

在Numpy中,flat属性用于返回一个展平的迭代器。与ravel()函数类似,flat迭代器返回的是原始数组的一个视图。

例子1:

import numpy as np

a = np.array([[1, 2], [3, 4]])
print("原始数组:")
print(a)

for i in a.flat:
    print(i, end=" ")
Python

输出结果:

原始数组:
[[1 2]
 [3 4]]
1 2 3 4 
Python

例子2:

import numpy as np

a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("原始数组:")
print(a)

for i in a.flat:
    print(i, end=" ")
Python

输出结果:

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

 [[5 6]
  [7 8]]]
1 2 3 4 5 6 7 8 
Python

总结

本文介绍了四种将多维数组展平为一维数组的方法,分别是使用ravel()函数、使用flatten()函数、使用reshape()函数以及使用flat属性。在实际应用中,根据不同的场景和需求选择合适的方法可以更高效地处理数组。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册