美文网首页Python
python的矩阵运算

python的矩阵运算

作者: hplllrhp | 来源:发表于2018-12-24 21:56 被阅读0次
    1.jpg

    python自身不支持矩阵运算,一般想要在python进行矩阵运算:一个方法是自己用二维列表定义矩阵,然后自己写矩阵基本运算的函数,这个方法有点事倍功半的意思,所以一般不采用。第二个方法是使用numpy库。
    NumPy是用Python进行科学计算的基础软件包。它包含以下内容:

    • 一个强大的N维数组对象
    • 复杂的(广播)功能
    • 用于集成C / C ++和Fortran代码的工具
    • 有用的线性代数,傅里叶变换和随机数能力

    除了明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以定义任意数据类型。这使得NumPy能够与各种数据库无缝并快速地整合。
    在python中安装了numpy库,就相当于安装了matlab一样,是的。这个库能够让你在python中操作矩阵仿佛是在matlab中一样轻松方便。
    下面就对使用这个numpy库进行矩阵运算做简单地介绍
    NumPy的数组类被称为ndarray,ndarray对象具有如下重要属性:

    • ndarray.ndim 矩阵的维度。在Python中,维度的数量被称为级数。
    • ndarray.shape矩阵的尺寸。返回一个数组,表示矩阵行和列的大小,也就是每个维度的大小。对于具有n行m列的矩阵,返回值是(n,m)。
    • ndarray.dtype 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。numpy.int32,numpy.int16和numpy.float64就是一些例子。
    • ndarray.itemsize 数组中每个元素的字节大小。例如,类型的元件的阵列float64具有itemsize 8(= 64/8),而类型的一个complex32具有itemsize 4(= 32/8)。它相当于- - ndarray.dtype.itemsize。
    • ndarray.data该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引设施访问数组中的元素。
      下面是一个实例:
    >>> import numpy as np  #导入numpy 库 
    >>> a = np.arange(15).reshape(3, 5)  #arange(15)表示生成从0到14的序列reshape(3, 5)表示将这个序列重新设置成3行5列的矩阵
    >>> a
    array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14]])
    >>> a.shape
    (3, 5)
    >>> a.ndim
    2
    >>> a.dtype.name
    'int64'
    >>> a.itemsize
    8
    >>> a.size
    15
    >>> type(a)
    <type 'numpy.ndarray'>
    >>> b = np.array([6, 7, 8])
    >>> b
    array([6, 7, 8])
    >>> type(b)
    <type 'numpy.ndarray'> 
    

    比较需要注意的是矩阵的乘法的符号表示,不少人会犯这个小错误。

    >>> A = np.array( [[1,1],
    ...             [0,1]] )
    >>> B = np.array( [[2,0],
    ...             [3,4]] )
    >>> A*B                         # 只是对应元素相乘而已
    array([[2, 0],
           [0, 4]])
    >>> A.dot(B)                    # 这个才是矩阵相乘
    array([[5, 4],
           [3, 4]])
    >>> np.dot(A, B)                # 这是另外一种形式
    array([[5, 4],
           [3, 4]])
    

    相关文章

      网友评论

        本文标题:python的矩阵运算

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