美文网首页
NumPy矩阵计算

NumPy矩阵计算

作者: juriau | 来源:发表于2018-11-01 21:09 被阅读5次

    NumPy中array和matrix的区别:

    array的优势就是不仅仅表示二维,还能表示3、4、5…维,而且在大部分Python程序里,array也是更常用的。

    matrix的优势就是相对简单的运算符号,比如两个矩阵相乘,就是用符号*,但是array相乘不能这么用,得用方法.dot()

    两者区别:

    • 对应元素相乘:matrix可以用np.multiply(X2,X1),array直接X1*X2

    • 矩阵相乘:matrix直接X1*X2;
      array可以X1.dot(X2) 或 np.dot(X1, X2) 或者 X1@X2,np.matmul(X1, X2)。
      区别请参考博文https://blog.csdn.net/Jasminexjf/article/details/79888350或者官方文档。
      推荐矩阵相乘使用@,简单明了。

    也就是说* ,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法


    矢量化(vectorization)

    数组很重要,因为它使你不用编写循环即可对数据执行批量运算。这通常叫做矢量化(vectorization)。大小相等的数组之间的任何算术都会将运算应用到元素级。

    • 数组与数组的运算
      相同大小数组的运算应用在每个对应元素上
    >>> a = np.arange(6).reshape(2,3)
    array([[0, 1, 2],
           [3, 4, 5]])
    
    >>>a * a 
    array([[ 0,  1,  4],
           [ 9, 16, 25]])
    
    
    • 数组与标量的算术运算
      将标量"广播(broadcast)"到各个元素
    >>>a + 2
    
    array([[2, 3, 4],
           [5, 6, 7]])
    
    

    注:标量(scalar):又称数量、纯量。与之对立的量叫矢量。

    相关文章

      网友评论

          本文标题:NumPy矩阵计算

          本文链接:https://www.haomeiwen.com/subject/jsmxxqtx.html