亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        Python中的Numpy入門教程

        字號:


            這篇文章主要介紹了Python中的Numpy入門教程,著重講解了矩陣中的數(shù)組操作,需要的朋友可以參考下
            1、Numpy是什么
            很簡單,Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經(jīng)提供了類似于矩陣的表示形式,不過numpy為我們提供了更多的函數(shù)。如果接觸過matlab、scilab,那么numpy很好入手。在以下的代碼示例中,總是先導入了numpy:
            代碼如下:
            >>>importnumpyasnp
            >>>printnp.version.version
            1.6.2
            2、多維數(shù)組
            多維數(shù)組的類型是:numpy.ndarray。
            使用numpy.array方法
            以list或tuple變量為參數(shù)產(chǎn)生一維數(shù)組:
            代碼如下:>>>printnp.array([1,2,3,4])
            [1234]
            >>>printnp.array((1.2,2,3,4))
            [1.22.3.4.]
            >>>printtype(np.array((1.2,2,3,4)))
            <type'numpy.ndarray'>
            以list或tuple變量為元素產(chǎn)生二維數(shù)組:
            代碼如下:
            >>>printnp.array([[1,2],[3,4]])
            [[12]
            [34]]
            生成數(shù)組的時候,可以指定數(shù)據(jù)類型,例如numpy.int32,numpy.int16,andnumpy.float64等:
            代碼如下:
            >>>printnp.array((1.2,2,3,4),dtype=np.int32)
            [1234]
            使用numpy.arange方法
            代碼如下:
            >>>printnp.arange(15)
            [01234567891011121314]
            >>>printtype(np.arange(15))
            <type'numpy.ndarray'>
            >>>printnp.arange(15).reshape(3,5)
            [[01234]
            [56789]
            [1011121314]]
            >>>printtype(np.arange(15).reshape(3,5))
            <type'numpy.ndarray'>
            使用numpy.linspace方法
            例如,在從1到3中產(chǎn)生9個數(shù):
            代碼如下:
            >>>printnp.linspace(1,3,9)
            [1.1.251.51.752.2.252.52.753.]
            使用numpy.zeros,numpy.ones,numpy.eye等方法可以構(gòu)造特定的矩陣
            例如:
            代碼如下:
            >>>printnp.zeros((3,4))
            [[0.0.0.0.]
            [0.0.0.0.]
            [0.0.0.0.]]
            >>>printnp.ones((3,4))
            [[1.1.1.1.]
            [1.1.1.1.]
            [1.1.1.1.]]
            >>>printnp.eye(3)
            [[1.0.0.]
            [0.1.0.]
            [0.0.1.]]
            創(chuàng)建一個三維數(shù)組:
            代碼如下:
            >>>printnp.zeros((2,2,2))
            [[[0.0.]
            [0.0.]]
            [[0.0.]
            [0.0.]]]
            獲取數(shù)組的屬性:
            代碼如下:
            >>>a=np.zeros((2,2,2))
            >>>printa.ndim#數(shù)組的維數(shù)
            3
            >>>printa.shape#數(shù)組每一維的大小
            (2,2,2)
            >>>printa.size#數(shù)組的元素數(shù)
            8
            >>>printa.dtype#元素類型
            float64
            >>>printa.itemsize#每個元素所占的字節(jié)數(shù)
            8
            數(shù)組索引,切片,賦值
            示例:
            代碼如下:
            >>>a=np.array([[2,3,4],[5,6,7]])
            >>>printa
            [[234]
            [567]]
            >>>printa[1,2]
            7
            >>>printa[1,:]
            [567]
            >>>printa[1,1:2]
            [6]
            >>>a[1,:]=[8,9,10]
            >>>printa
            [[234]
            [8910]]
            使用for操作元素
            代碼如下:
            >>>forxinnp.linspace(1,3,3):
            ...printx
            ...
            1.0
            2.0
            3.0
            基本的數(shù)組運算
            先構(gòu)造數(shù)組a、b:
            代碼如下:
            >>>a=np.ones((2,2))
            >>>b=np.eye(2)
            >>>printa
            [[1.1.]
            [1.1.]]
            >>>printb
            [[1.0.]
            [0.1.]]
            數(shù)組的加減乘除:
            代碼如下:
            >>>printa>2
            [[FalseFalse]
            [FalseFalse]]
            >>>printa+b
            [[2.1.]
            [1.2.]]
            >>>printa-b
            [[0.1.]
            [1.0.]]
            >>>printb*2
            [[2.0.]
            [0.2.]]
            >>>print(a*2)*(b*2)
            [[4.0.]
            [0.4.]]
            >>>printb/(a*2)
            [[0.50.]
            [0.0.5]]
            >>>print(a*2)**4
            [[16.16.]
            [16.16.]]
            使用數(shù)組對象自帶的方法:
            代碼如下:
            >>>a.sum()
            4.0
            >>>a.sum(axis=0)#計算每一列(二維數(shù)組中類似于矩陣的列)的和
            array([2.,2.])
            >>>a.min()
            1.0
            >>>a.max()
            1.0
            使用numpy下的方法:
            代碼如下:
            >>>np.sin(a)
            array([[0.84147098,0.84147098],
            [0.84147098,0.84147098]])
            >>>np.max(a)
            1.0
            >>>np.floor(a)
            array([[1.,1.],
            [1.,1.]])
            >>>np.exp(a)
            array([[2.71828183,2.71828183],
            [2.71828183,2.71828183]])
            >>>np.dot(a,a)##矩陣乘法
            array([[2.,2.],
            [2.,2.]])
            合并數(shù)組
            使用numpy下的vstack和hstack函數(shù):
            代碼如下:
            >>>a=np.ones((2,2))
            >>>b=np.eye(2)
            >>>printnp.vstack((a,b))
            [[1.1.]
            [1.1.]
            [1.0.]
            [0.1.]]
            >>>printnp.hstack((a,b))
            [[1.1.1.0.]
            [1.1.0.1.]]
            看一下這兩個函數(shù)有沒有涉及到淺拷貝這種問題:
            代碼如下:
            >>>c=np.hstack((a,b))
            >>>printc
            [[1.1.1.0.]
            [1.1.0.1.]]
            >>>a[1,1]=5
            >>>b[1,1]=5
            >>>printc
            [[1.1.1.0.]
            [1.1.0.1.]]
            可以看到,a、b中元素的改變并未影響c。
            深拷貝數(shù)組
            數(shù)組對象自帶了淺拷貝和深拷貝的方法,但是一般用深拷貝多一些:
            代碼如下:>>>a=np.ones((2,2))
            >>>b=a
            >>>bisa
            True
            >>>c=a.copy()#深拷貝
            >>>cisa
            False
            基本的矩陣運算
            轉(zhuǎn)置:
            代碼如下:
            >>>a=np.array([[1,0],[2,3]])
            >>>printa
            [[10]
            [23]]
            >>>printa.transpose()
            [[12]
            [03]]
            跡:
            代碼如下:>>>printnp.trace(a)
            4
            numpy.linalg模塊中有很多關(guān)于矩陣運算的方法:
            代碼如下:
            >>>importnumpy.linalgasnplg
            特征值、特征向量:
            代碼如下:
            >>>printnplg.eig(a)
            (array([3.,1.]),array([[0.,0.70710678],
            [1.,-0.70710678]]))3、矩陣
            numpy也可以構(gòu)造矩陣對象,這里不做討論。