close

Numpy是python重要的模組(模組引用要import),提供多維度的陣列(資料矩陣)的應用運算處理,也提供出乎你想像的資料處理分析應用的數學函式,提供更進一步的資料結構分析及處理,講得太繞口令,或說得太偉大可能讓您害怕,沒關係,一步一步來,我們先學些基本的,未來需要用到更深入的資料分析或處理時,召喚google大師幫我們查查便有,我也會整理出進階的範例說明讓各位同好來接觸學習喔!哈哈哈…..

下述numpy都是運用來處理陣列資料N-dimensional array(ndarray)重要的屬性就是維度(ndim)、形狀(shape)和數值類型(dtype)待會會顯示出來.

import numpy as np先引用numpy後面使用時用np簡稱代表即可

np_data=np.arange(8)產生一個數字序列從0到7共8個

print(np_data.shape, np_data.ndim, np_data.dtype, np_data.itemsize, np_data.size)ß 陣列的重要屬性

        輸出:(8,) 1 int32 4 8一維陣列、8個元素、int32數字型態

print(np_data)

輸出: [0 1 2 3 4 5 6 7]

#試著產生array ,借由list

np_data1=np.array([1,2,3,4,'文字'])ß陣列不同list,陣列中資料需為同質資料,在此為’文字’的出現故python自動將前面的數字認定為文字型態

print(np_data1)

        輸出:['1' '2' '3' '4' '文字']

#試著產生array

np_data2=np.array({'a':1,'b':2,'c':"test"})

print(np_data2)

輸出:{'a': 1, 'b': 2, 'c': 'test'}

np_data3=np.array(([(1,2,3),(4,5,6)]))

print(np_data3)

        輸出:[[1 2 3]

             [4 5 6]

#創造一個3*4的全為0的陣列

print(np.zeros((3,4)))

        輸出:[[ 0.  0.  0.  0.]

             [ 0.  0.  0.  0.]

             [ 0.  0.  0.  0.]]

#創造一個5*5 的全為1的陣列

print(np.ones((5,5)))

        輸出:[[ 1.  1.  1.  1.  1.]

            [ 1.  1.  1.  1.  1.]

            [ 1.  1.  1.  1.  1.]

            [ 1.  1.  1.  1.  1.]

            [ 1.  1.  1.  1.  1.]]

#創造一個1開始小於21間隔為1的陣列

np_data5=np.arange(1,21,1)

print(np_data5)

        輸出:[ 1  2  3 ..., 18 19 20]

#將上述陣列重塑4*5的陣列

print(np.arange(1,21,1).reshape(4,5))

        輸出:[[ 1  2  3  4  5]

             [ 6  7  8  9 10]

             [11 12 13 14 15]

             [16 17 18 19 20]]

從numpy模組中引入圓周半徑pi

from numpy import pi

print(pi)

        輸出:3.141592653589793

#linspace用途為將起始至截止數值間切割為指定部分圖下為11等分

print(np.linspace(0,pi,11))

輸出:[ 0.          0.31415927  0.62831853 ...,  2.51327412  2.82743339

                   3.14159265]

#重塑三維陣列的範例

np_data6=np.arange(1000).reshape(10,10,10)

print(np_data6)

#帶您試試看基本運算及操作

a=np.ones(3)

b=np.linspace(0,pi,3)

c=a+b

print(c)

 [ 1.          2.57079633  4.14159265]    

ran=np.random.random((3,2))

print(ran)

print(ran.sum(),ran.min(),ran.max())

        輸出:[[ 0.60447561  0.97434735]

              [ 0.297664    0.46631272]

              [ 0.11462281  0.22222265]]

               2.67964514143 0.114622814313 0.97434734694

#shape

a=np.floor(10*np.random.random((3,4)))ßfloor為取不超過該數最大整數

print(a,a.shape)

        輸出:[[ 8.  9.  3.  3.]

                   [ 7.  4.  8.  2.]

             [ 4.  6.  5.  0.]] (3, 4)

print(a.ravel())

        輸出:[ 3.  4.  3. ...,  5.  8.  5.]

print(a.reshape(6,-1))

                    [[ 5.  7.]

               [ 5.  9.]

               [ 3.  6.]

               [ 6.  3.]

               [ 8.  4.]

               [ 9.  7.]]

for element in a.flat:

    print(element)

np3=np.array([1,2,3,4,5,6])

print(np3>3)

                    [False False False  True  True  True]

print(np3[np3>3])

                    [4 5 6]

arrow
arrow

    阿丹 發表在 痞客邦 留言(0) 人氣()