Python科学计算库中有ndarray和matrix两种类都可以表示矩阵, 那么它们之间有什么联系和区别呢?
ndarray
ndarray是通用数组数据类型, 支持一维, 二维, 至多维的运算
1 | >>> x = np.array([[2.+1.j, 1.-1.j], [1.-1.j, 1.+1.j]]) |
matrix
matrix是矩阵类型, 仅支持二维矩阵的运算, 只是相当于ndarray的一个子集. 优势是写法非常舒服, 接近日常数学公式的书写.
比如, 声明矩阵就可以用引号,双引号扩出.
1 | >>> x = np.mat("2+1.j, 1-1.j; 1-1.j, 1+1.j", dtype=np.complex64) |
进行矩阵运算也很方便
1 | >>> x ** 2 # 矩阵平方 |
相互转换
两种数据类型之间也可以相互转换, 使用方法 np.asmatrix
和 np.asarray
评论
shortname
for Disqus. Please set it in_config.yml
.