阅读量

原创教程,严禁转载。引用本文,请署名 Python中文网, http://www.zglg.work


如何反转数组

本节介绍np.flip()

NumPy的np.flip()函数允许您沿轴翻转或反转数组的内容。

使用np.flip()时,指定要反转的数组和轴。如果不指定轴,NumPy将沿输入数组的所有轴反转内容。

反转1D阵列

如果您从这样的1D数组开始:

>>> arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

反转数组:

>>> reversed_arr = np.flip(arr)
反转二维阵列

二维阵列的工作原理大致相同。

如果从这个数组开始:

>>> arr_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

您可以使用以下命令反转所有行和列中的内容:

>>> reversed_arr = np.flip(arr_2d)
>>> print(reversed_arr)
[[12 11 10  9]
 [ 8  7  6  5]
 [ 4  3  2  1]]

您可以轻松地仅使用以下命令反转行:

>>> reversed_arr_rows = np.flip(arr_2d, axis=0)
>>> print(reversed_arr_rows)
[[ 9 10 11 12]
 [ 5  6  7  8]
 [ 1  2  3  4]]

或仅反转列:

>>> reversed_arr_columns = np.flip(arr_2d, axis=1)
>>> print(reversed_arr_columns)
[[ 4  3  2  1]
 [ 8  7  6  5]
 [12 11 10  9]]

也可以只反转一列或一行的内容。例如,可以反转索引位置1(第二行)行的内容:

>>> arr_2d[1] = np.flip(arr_2d[1])
>>> print(arr_2d)
[[ 1  2  3  4]
 [ 8  7  6  5]
 [ 9 10 11 12]]

也可以反转索引位置1处的列(第二列):

>>> arr_2d[:,1] = np.flip(arr_2d[:,1])
>>> print(arr_2d)
[[ 1 10  3  4]
 [ 8  7  6  5]
 [ 9  2 11 12]]

NumPy入门系列教程:

1 NumPy介绍

2 安装和导入NumPy

3 Python列表和NumPy数组有什么区别?

4 什么是array?

5 有关Array的详细信息

6 如何创建array

7 添加、删除和排序元素

8 数组形状和大小

9 重塑array

10 如何将一维array转换为二维array(如何向数组添加新轴)

11 NumPy索引和切片

12 如何从现有数据创建数组

13 数组基本操作

14 广播

15 更有用的数组操作

16 生成随机数

17 获得唯一元素和出现次数

18 变换和重塑矩阵

19 如何反转数组