《数据科学与分析:Python语言实现》 —2.4 计算和数据处理
2.4 计算和数据处理
使用目前所讨论的编程结构,我们已可以完成大量任务,不仅可以用于数据科学中,而且用在一般的项目中也没有问题。但在某些特定情况下,正如我们将在本书的其余部分中看到的那样,借助线性代数可以更有效、更轻松地管理数据计算及进行操作。在本节中,我们将用到Python中涉及数据操作和线性代数的一些基本概念。
2.4.1 矩阵操作和线性代数
正如上面提到的,线性代数使我们能够以非常有效的方式执行数据计算任务。它还提供了一个简洁表示法来表达我们需要对数据进行的操作类型——从预处理到显示结果。因此,向量和矩阵的使用是一个非常重要的领域。向量和矩阵是具有一组已定义的运算(例如加法、减法、乘法等)的数值对象的数组。
m×n矩阵是具有m行和n列的矩形数组。特别地,当m=1时,我们有一个列向量,当n=1时,我们有一个行向量。通常,矩阵A可以表示如下:
(2.1)
在考虑使用数组时自然会想到使用Python的列表对象。例如,我们可以创建两个列
表,如下所示:
但是,请记住,Python将这些对象视为列表,并且每种类型的对象都有一组已定义的操作。例如,如果我们尝试在数学概念上叠加这两个数组,我们会发现Python返回一个意外的答案:
Python没有叠加两个向量的元素,而是连接了列表,这是因为Python重载了“+”符号,但如果我们尝试使用其他算术符号,如减法(-)或乘法(×),则会返回错误:
很明显,列表是我们需要执行的操作的良好开端,并且使用Python的编程功能将使我们能够构建函数来定义数学运算并基于列表去构造数组。然而,尽管它可能是一个非常好的编程实践,但要构建我们自己的函数,直接操作数组还是有些力不从心。所以我们可以改为利用Python中已有的模块,例如SciPy,它提供了数学、科学和工程领域的一套完整生态系统,尤其是NumPy,这是一个支持N维数组的包。
- 点赞
- 收藏
- 关注作者
评论(0)