在 Python 中将列表转换为矩阵

本教程将演示可用于在 Python 中将列表转换为矩阵的不同方法。

列表和矩阵都是 Python 提供的不同数据类型,用于在单个变量下存储多个项目。在这两种情况下,访问这些项目都变得相对容易。

不幸的是,我们不能对列表执行一些数学函数。因此,在大多数情况下,列表因此被转换为矩阵或数组,以成功执行特定的数学函数。

Python 不直接包含数组数据类型,但包含作为数组子类的矩阵,这为它们提供了数组的所有特性,除了它们自己的特性。在 Python 中有几种方法可以将列表转换为矩阵,下面都会提到。

在 Python 中使用循环和列表切片将列表转换为数组或矩阵

可以使用嵌套列表的概念制作一个简单的矩阵。在此方法中,任务是将包含给定项目的列表转换为列表。

这可以通过简单地利用循环、append() 函数和列表切片的概念来实现。在这里,我们将利用 while 循环来实现手头的任务。

以下代码使用循环和列表切片将列表转换为 Python 中的矩阵。

x = [2,10,20,200,4000]
mat = []
while x != []:
  mat.append(x[:2])
  x = x[2:]
print(mat)

输出:

[[2, 10], [20, 200], [4000]]

在上面的代码中,我们选择实现值 2 的列表切片。这可以根据用户的需要而变化,并且可以改变矩阵中元素的位置。

在 Python 中使用 Numpy 库中的 array() 函数将列表转换为数组或矩阵

NumPy 是一个必不可少的库,它使用户能够在 Python 中创建和操作数组和矩阵。

numpy.array 方法可以在 Python 中声明一个数组。可以直接将列表作为该函数的参数,使用该函数后的结果是一个矩阵。

需要将 NumPy 库导入 Python 代码才能运行该程序而不会出现任何错误。

以下代码使用 NumPy 库中的 array() 函数将列表转换为 Python 中的数组或矩阵。

import numpy as np
x = [12,10,20,200,4000]
mat = np.array(x)
print (mat)

输出:

[  12   10   20  200 4000]

此外,NumPy 库还包含另一个函数 reshape(),让程序员根据需要决定列表元素的形状和位置。

可以将以下代码视为实现 numpy.reshape() 函数的示例。

import numpy as np
x = np.array([12,10,20,200])
shape = (2,2)
print(x.reshape(shape))

输出:

[[ 12  10]
 [ 20 200]]

在 Python 中使用 Numpy 库中的 asarray() 函数将列表转换为数组或矩阵

numpy.asarray() 函数的工作原理类似于 numpy.array() 函数。此函数可以将字典、列表等多种数据类型对象转换为简单的 NumPy 矩阵。

numpy.array() 方法在 numpy.asarray() 函数中调用,这就是为什么说前一个函数的语法只是后者的扩展。

在 numpy.asarray() 函数中,copy 标志默认为 False,这与 numpy.array() 函数将 copy 标志默认为 True 不同。

以下代码使用 NumPy 库中的 asarray() 函数将列表转换为 Python 中的数组或矩阵。

import numpy as np
x = [2,10,20,200,4000]
mat = np.asarray(x)
print (mat)

输出:

[   2   10   20  200 4000]