您的位置:

Python NumPy:二维数组用途及示例

NumPy是Python中做科学计算必不可少的库之一,主要用于数组处理。在NumPy中有一种数据结构叫做二维数组,也叫做矩阵,是NumPy中最基础的数据结构之一。在本文中,我们将详细讲解二维数组的用途以及如何使用它们。

一、创建二维数组

可以通过Numpy中的array函数来创建二维数组。如下所示,创建一个大小为3x4的数组:


import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a)

输出结果为:


[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

还可以通过NumPy内置的函数来创建一些特殊的二维数组,例如,创建一个全是0的二维数组:


a = np.zeros((3, 4))
print(a)

输出结果为:


[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

二、访问二维数组中的元素

通过下标来访问二维数组中的元素。例如,要访问第2行第3列的元素,可以执行如下代码:


import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a[1][2])

输出结果为:


7

三、对二维数组进行切片

和一维数组一样,二维数组也支持切片操作。例如,获取第二行的所有元素:


import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a[1, :])

输出结果为:


[5 6 7 8]

同样地,还可以获取所有列的元素:


import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a[:, 1])

输出结果为:


[ 2  6 10]

四、对二维数组进行运算

使用NumPy中的函数,可以对二维数组进行各种基本运算,如加、减、乘等。例如,对相同大小的两个二维数组进行加法运算:


import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
b = np.array([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]])
print(a + b)

输出结果为:


[[ 2  3  4  5]
 [ 7  8  9 10]
 [12 13 14 15]]

五、二维数组的转置

使用T属性对二维数组进行转置操作,即行变为列,列变为行。


import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a.T)

输出结果为:


[[ 1  5  9]
 [ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]]

六、二维数组的拼接

使用concatenate函数可以对两个二维数组进行拼接。如下所示,对两个大小相同的二维数组进行水平方向的拼接:


import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
c = np.concatenate((a, b), axis=1)
print(c)

输出结果为:


[[ 1  2  3 10 11 12]
 [ 4  5  6 13 14 15]
 [ 7  8  9 16 17 18]]

同样地,可以对两个二维数组进行垂直方向的拼接:


import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
c = np.concatenate((a, b), axis=0)
print(c)

输出结果为:


[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]
 [13 14 15]
 [16 17 18]]

七、结论

在本文中,我们讲解了如何创建二维数组,并对其中元素进行访问和切片,还讲解了二维数组的基本运算、转置和拼接。这些都是NumPy中二维数组的重要用途,将这些操作熟练掌握后,你将轻松处理二维数组数据。