龙空技术网

DAY5-step13 Python示例说明 矩阵:转置,乘法,NumPy数组

易小盟办公设备企业店 256

前言:

而今看官们对“python数组转换矩阵”大概比较讲究,咱们都想要了解一些“python数组转换矩阵”的相关知识。那么小编在网上汇集了一些有关“python数组转换矩阵””的相关文章,希望小伙伴们能喜欢,姐妹们快快来学习一下吧!

什么是Python矩阵?

Python矩阵是存储在行和列中的专用二维数据矩形数组。 矩阵中的数据可以是数字,字符串,表达式,符号等。矩阵是可用于数学和科学计算的重要数据结构之一。

Python矩阵如何运作?

二维数组中矩阵格式的数据如下:

第1步)

它显示了一个2x2矩阵。它有两行两列。矩阵内的数据是数字。 row1的值为2,3,row2的值为4,5。列即col1的值为2,4,而col2的值为3,5。

第2步)

它显示了一个2x3矩阵。它有两行三列。第一行内的数据,即row1,具有值2,3,4,而row2具有值5,6,7。列col1的值为2,5,col2的值为3,6,col3的值为4,7。

因此,类似地,您可以将数据存储在Python中的nxn矩阵内。可以对类似矩阵的加法,减法,乘法等进行很多操作。

Python没有实现矩阵数据类型的直接方法。

python矩阵利用数组,并且可以实现相同的数组。

使用嵌套列表数据类型创建Python矩阵使用Python Numpy包中的数组创建Python矩阵使用嵌套列表数据类型创建Python Matrix

在Python中,使用列表数据类型表示数组。因此,现在将利用该列表创建一个python矩阵。

我们将创建一个3x3矩阵,如下所示:

矩阵有3行3列。列表格式的第一行如下:[8,14,-6]列表中的第二行将是:[12,7,4]列表中的第三行将是:[-11,3,21]

包含所有行和列的列表内的矩阵如下所示:

List = [[Row1],            [Row2],            [Row3]           ...           [RowN]]

因此,根据上面列出的矩阵,具有矩阵数据的列表类型如下:

M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
使用列表读取Python Matrix中的数据。

我们将利用上面定义的矩阵。 该示例将读取数据,打印矩阵,显示每行的最后一个元素。

示例:打印矩阵

M1 = [[8, 14, -6],            [12,7,4],            [-11,3,21]]#To print the matrixprint(M1)

Output:

The Matrix M1 =  [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

示例2:读取每一行的最后一个元素。

M1 = [[8, 14, -6],           [12,7,4],            [-11,3,21]]matrix_length = len(M1)#To read the last element from each row.for i in range(matrix_length):    print(M1[i][-1])

Output:

-6421

示例3:打印矩阵中的行

M1 = [[8, 14, -6],           [12,7,4],            [-11,3,21]]matrix_length = len(M1)#To print the rows in the Matrixfor i in range(matrix_length):    print(M1[i])

Output:

[8, 14, -6][12, 7, 4][-11, 3, 21]
使用嵌套列表添加矩阵

我们可以轻松地添加两个给定的矩阵。 此处的矩阵将以列表形式显示。 让我们来研究一个示例,该示例将注意添加给定的矩阵。

Matrix 1:

M1 = [[8, 14, -6],           [12,7,4],            [-11,3,21]]

Matrix 2 :

M2 = [[3, 16, -6],           [9,7,-4],            [-1,3,13]]

最后将初始化一个矩阵,该矩阵将存储M1 + M2的结果。

Matrix 3 :

M3  = [[0,0,0],            [0,0,0],            [0,0,0]]

示例:添加矩阵

作为补充,矩阵将使用for循环,该循环将遍历给定的两个矩阵。

M1 = [[8, 14, -6],       [12,7,4],       [-11,3,21]]M2 = [[3, 16, -6],           [9,7,-4],            [-1,3,13]]M3  = [[0,0,0],       [0,0,0],       [0,0,0]]matrix_length = len(M1)#To Add M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):        M3[i][k] = M1[i][k] + M2[i][k]#To Print the matrixprint("The sum of Matrix M1 and M2 = ", M3)

Output:

The sum of Matrix M1 and M2 =  [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
使用嵌套列表的矩阵乘法

要相乘矩阵,我们可以在两个矩阵上使用for循环,如下面的代码所示:

M1 = [[8, 14, -6],       [12,7,4],       [-11,3,21]]M2 = [[3, 16, -6],           [9,7,-4],            [-1,3,13]]M3  = [[0,0,0],       [0,0,0],       [0,0,0]]matrix_length = len(M1)#To Multiply M1 and M2 matricesfor i in range(len(M1)):for k in range(len(M2)):        M3[i][k] = M1[i][k] * M2[i][k]#To Print the matrixprint("The multiplication of Matrix M1 and M2 = ", M3)

Output:

The multiplication of Matrix M1 and M2 =  [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
使用Python Numpy包中的数组创建Python矩阵

python库Numpy帮助处理数组。 与列表相比,Numpy处理数组要快一些。

要使用Numpy,您需要先安装它。 请按照下面给出的步骤安装Numpy。

第1步)

安装Numpy的命令是:

pip install NumPy

第2步)

要在代码中使用Numpy,必须将其导入。

import NumPy

步骤3)

您还可以使用别名导入Numpy,如下所示:

import NumPy as np

我们将利用Numpy的array()方法创建一个python矩阵。

示例:Numpy中的数组以创建Python矩阵

import numpy as npM1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])print(M1)

Output:

[[  5 -10  15] [  3  -6   9] [ -4   8  12]]
使用Numpy.Array()进行矩阵运算

可以完成的矩阵运算是加法,减法,乘法,转置,读取矩阵的行,列,对矩阵进行切片等。在所有示例中,我们将使用array()方法。

矩阵加法

为了对矩阵执行加法运算,我们将使用numpy.array()创建两个矩阵,并使用(+)运算符将它们相加。

Example:

import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 + M2  print(M3)

Output:

[[ 12 -12  36] [ 16  12  48] [  6 -12  60]]

矩阵减法

为了对矩阵进行减法,我们将使用numpy.array()创建两个矩阵,并使用(-)运算符将它们相减。

Example:

import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])M3 = M1 - M2  print(M3)

Output:

[[ -6  24 -18] [ -6 -32 -18] [-20  40 -18]]

矩阵乘法

首先将使用numpy.arary()创建两个矩阵。 若要将它们相乘,可以使用numpy dot()方法。 Numpy.dot()是矩阵M1和M2的点积。 Numpy.dot()处理2D数组并执行矩阵乘法。

Example:

import numpy as npM1 = np.array([[3, 6], [5, -10]])M2 = np.array([[9, -18], [11, 22]])M3 = M1.dot(M2)  print(M3)

Output:

[[  93   78] [ -65 -310]]

矩阵转置

通过将行更改为列,将列更改为行来计算矩阵的转置。 Numpy的transpose()函数可用于计算矩阵的转置。

Example:

import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])M2 = M1.transpose()print(M2)

Output:

[[  3   5   4] [  6 -10   8] [  9  15  12]]

矩阵切片(Slicing)

切片将根据给定的开始/结束索引从矩阵中返回元素。

切片的语法是-[start:end]如果未指定起始索引,则将其视为0。例如[:5],则表示为[0:5]。如果未通过结尾,则将其作为数组的长度。如果开始/结尾具有负值,它将从数组的结尾开始切片。

在对矩阵进行切片之前,让我们首先了解如何将切片应用于简单数组。

import numpy as nparr = np.array([2,4,6,8,10,12,14,16])print(arr[3:6]) # will print the elements from 3 to 5print(arr[:5]) # will print the elements from 0 to 4print(arr[2:]) # will print the elements from 2 to length of the array.print(arr[-5:-1]) # will print from the end i.e. -5 to -2print(arr[:-1]) # will print from end i.e. 0 to -2

Output:

[ 8 10 12][ 2  4  6  8 10][ 6  8 10 12 14 16][ 8 10 12 14][ 2  4  6  8 10 12 14]

现在让我们在矩阵上实现切片。 对矩阵执行切片

语法将为M1 [row_start:row_end,col_start:col_end]

第一个开始/结束将针对该行,即选择矩阵的行。第二个开始/结束将用于该列,即选择矩阵的列。

我们将使用的矩阵M1如下:

M1 = np.array([[2, 4, 6, 8, 10],     [3, 6, 9, -12, -15],    [4, 8, 12, 16, -20],    [5, -10, 15, -20, 25]])

共有4行。 索引从0到3。第0行是[2,4,6,8,10],第1行是[3,6,9,-12,-15],后跟第二和第三。

矩阵M1具有5列。 索引从0到4。第0列的值为[2,3,4,5],第1列的值为[4,6,8,-10],后跟第2,第3,第4和第5。

这是一个示例,显示了如何使用切片从矩阵获取行和列数据。 在示例中,我们要打印第一行和第二行,对于列,我们需要第一列,第二列和第三列。 为了获得该输出,我们使用了:M1 [1:3,1:4]

Example:

import numpy as npM1 = np.array([[2, 4, 6, 8, 10],     [3, 6, 9, -12, -15],    [4, 8, 12, 16, -20],    [5, -10, 15, -20, 25]])print(M1[1:3, 1:4]) # For 1:3, it will give first and second row.#The columns will be taken from first to third.

Output:

[[  6   9 -12] [  8  12  16]]

示例:要打印所有行和第三列

import numpy as npM1 = np.array([[2, 4, 6, 8, 10],     [3, 6, 9, -12, -15],    [4, 8, 12, 16, -20],    [5, -10, 15, -20, 25]])print(M1[:,3]) # This will print all rows and the third column data.

Output:

[  8 -12  16 -20]

示例:打印第一行和所有列

import numpy as npM1 = np.array([[2, 4, 6, 8, 10],     [3, 6, 9, -12, -15],    [4, 8, 12, 16, -20],    [5, -10, 15, -20, 25]])print(M1[:1,]) # This will print first row and all columns

Output:

[[ 2  4  6  8 10]]

示例:打印前三行和前2列

import numpy as npM1 = np.array([[2, 4, 6, 8, 10],     [3, 6, 9, -12, -15],    [4, 8, 12, 16, -20],    [5, -10, 15, -20, 25]])print(M1[:3,:2])

Output:

[[2 4] [3 6] [4 8]]
访问NumPy矩阵

我们已经看到了切片的工作原理。 考虑到这一点,我们将如何从矩阵中获取行和列。

打印矩阵的行

在示例中将打印矩阵的行。

Example:

import numpy as npM1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])print(M1[0])  #first rowprint(M1[1]) # the second rowprint(M1[-1]) # -1 will print the last row

Output:

[3 6 9][  5 -10  15][ 4  8 12]

要获取最后一行,可以使用索引或-1。 例如,矩阵有3行,

所以M1 [0]会给你第一行,

M1 [1]将给您第二行

M1 [2]或M1 [-1]将为您提供第三行或最后一行。

打印矩阵的列

import numpy as npM1 = np.array([[2, 4, 6, 8, 10],     [3, 6, 9, -12, -15],    [4, 8, 12, 16, -20],    [5, -10, 15, -20, 25]])print(M1[:,0]) # Will print the first Columnprint(M1[:,3]) # Will  print the third Columnprint(M1[:,-1]) # -1 will give you the last column

Output:

[2 3 4 5][  8 -12  16 -20][ 10 -15 -20  25]
摘要:Python矩阵是存储在行和列中的专用二维数据矩形数组。矩阵中的数据可以是数字,字符串,表达式,符号等。矩阵是可用于数学和科学计算的重要数据结构之一。Python没有实现矩阵数据类型的直接方法。可以使用嵌套列表数据类型和numpy库创建Python矩阵。python库Numpy帮助处理数组。与列表相比,Numpy处理数组要快一些。可以完成的矩阵运算是加法,减法,乘法,转置,读取矩阵的行,列,对矩阵进行切片等。要添加两个矩阵,可以使用numpy.array()并使用(+)运算符添加它们。若要将它们相乘,可以使用numpy dot()方法。 Numpy.dot()是矩阵M1和M2的点积。 Numpy.dot()处理2D数组并执行矩阵乘法。通过将行更改为列,将列更改为行来计算矩阵的转置。 Numpy的transpose()函数可用于计算矩阵的转置。切片矩阵将根据给定的开始/结束索引返回元素。

标签: #python数组转换矩阵