在 Python 中将列表转换为矩阵

Vaibhhav Khetarpal 2023年1月30日
  1. 在 Python 中使用循环和列表切片将列表转换为数组或矩阵
  2. 在 Python 中使用 Numpy 库中的 array() 函数将列表转换为数组或矩阵
  3. 在 Python 中使用 Numpy 库中的 asarray() 函数将列表转换为数组或矩阵
在 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]
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相关文章 - Python List