python中怎么定义二维向量类及其运算

Python023

python中怎么定义二维向量类及其运算,第1张

python中怎么定义二维向量类及其运算如下:

1、向量一维的数组,包括行向量和列向量,和传统向量定义不同的是定义的默认是行向量。

2、向量的运算,向量和矩阵相加一样,只有在维数相同的情况下才可以相加,向量相加实质上是对应位置元素的相加。

3、内积运算通过函数实现,一维的向量相乘只能用于行向量相乘,对于二维中的列向量的运算,则遵从矩阵的运算法则。

4、向量的线性组合,向量的线性组合可以在行进行运算,但是更推荐基于列向量中进行运算。

如果你需要使用二维数组,在 Python 中,除了 numpy 这个包之外,最简单的方式就是使用 list 了。你可能认为可以这样构建:

但是请你再仔细想一想,这样做真的没有问题吗?

不要忘记了, Python 一切都是对象 这个问题,对象肯定存在引用的问题,尤其是可变对象。我们试着来改变其中一个元素:

很不幸,不是我们想象的那样,它改变了多个元素。

来看一看 [ [0] * m ] * n 这个表达式,它首先创建 a = [ [0] * 4] ,然后构造 array = [a] * 3 ,这里 array 里面是 a 的 3 个引用。

正确的构造,应该使用 列表推导式 ,而且非常 Pythonic