1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        數(shù)據(jù)分析教材系列:Numpy常用知識點匯總

        共 5722字,需瀏覽 12分鐘

         ·

        2021-03-14 11:19


        本文目錄






        定義









        數(shù)組類型



        基本類型




        類型轉(zhuǎn)換


           In:

        j = np.arange(3)  
        print(j)
        print('查看數(shù)據(jù)類型:\n',j.dtype)
        print('-'*20)
        g = j.astype('float'#轉(zhuǎn)換為float類型
        print('查看轉(zhuǎn)換后類型:\n',g.dtype)

          Out:

        [0 1 2]
        查看數(shù)據(jù)類型:
         int64
        --------------------
        查看轉(zhuǎn)換后類型:
         float64






        數(shù)組操作



        創(chuàng)建數(shù)組


           In:

        #方法一、將列表或元組傳入np.array()來創(chuàng)建
        print(np.array([1,2,3])) 
        #方法二、初始化數(shù)組的值,只需傳入元素個數(shù)即可
        print(np.ones(3))
        print(np.zeros(3))
        print(np.random.random(3))

          Out:
        [1 2 3]
        [1. 1. 1.]
        [0. 0. 0.]
        [0.71318806 0.95903425 0.75384478]


        數(shù)組運算


        In:
        #首先創(chuàng)建兩個數(shù)組
        data1 = np.array([1,2])
        data2 = np.ones(2)
        print(data1,data2)
        Out:
        [1 2] [1. 1.]

        In:
        #數(shù)組間加減乘除
        jia = data1+data2
        jian = data1-data2
        cheng = data1*data2
        chu = data1/data2
        #數(shù)組與單個數(shù)值的操作
        shuzhi1 = data1*100
        shuzhi2 = data1/100
        print(jia,jian,cheng,chu,shuzhi1,shuzhi2)
        Out:
        [2. 3.] [0. 1.] [1. 2.] [1. 2.] [100 200] [0.01 0.02]


        數(shù)組切片


        In:
        #類似列表操作進行索引和切片
        data3 = np.array([1,2,3,4,5])
        print(data3)
        print(data3[0])
        print(data3[2:4])
        print(data3[2:])
        print(data3[:4])
        Out:
        [1 2 3 4 5]
        1
        [3 4]
        [3 4 5]
        [1 2 3 4]


        聚合函數(shù)


        In:
        data4 = np.array([1,2,3,4,5])
        print(data4.max()) #最大值
        print(data4.min()) #最小值
        print(data4.mean()) #均值
        print(data4.sum()) #求和
        print(data4.std()) #標準差
        Out:
        5
        1
        3.0
        15
        1.4142135623730951





        矩陣操作



        創(chuàng)建矩陣


        In:
        #方法一、通過將二維列表傳給Numpy來創(chuàng)建矩陣
        print(np.array([[1,2],[3,4]]))
        #方法二、傳入一個元組來描述矩陣的維度
        print(np.ones((3,2))) #3行2列矩陣
        print(np.zeros((3,2))) 
        print(np.random.random((3,2))) 
        Out:
        [[1 2]
         [3 4]]
        [[1. 1.]
         [1. 1.]
         [1. 1.]]
        [[0. 0.]
         [0. 0.]
         [0. 0.]]
        [[0.2928769  0.24093443]
         [0.06189287 0.62359846]
         [0.80539105 0.81706549]]


        矩陣運算


        In:
        #相同大小矩陣的加減乘除
        data5 = np.array([[1,2],[3,4]])
        data6 = np.ones((2,2))
        jia1 = data5 + data6
        cheng1 = data5 * data6
        print(jia1,'\n',cheng1)
        Out:
        [[2. 3.]
         [4. 5.]] 
         [[1. 2.]
         [3. 4.]]

        In:
        #不同大小矩陣的加減乘除(僅兩個矩陣秩數(shù)為1時)
        data7 = np.array([[1,2],[3,4],[5,6]])
        data8_1 = np.ones((1,2)) #行秩為1
        data8_2 = np.ones((3,1)) #列秩為1
        print(data7 + data8_1)
        print('-'*20)
        print(data7 + data8_2)
        Out:
        [[2. 3.]
         [4. 5.]
         [6. 7.]]
        --------------------
        [[2. 3.]
         [4. 5.]
         [6. 7.]]

        In:
        #矩陣乘法,dot()方法
        data9 = np.array([[1,2,3]]) #1*3的矩陣
        data10 = np.array([[1,2],[3,4],[5,6]]) #3*2的矩陣
        data11 = data9.dot(data10) #1*2的矩陣
        print(data11)
        Out:
        [[22 28]]


        矩陣切片和聚合


        In:
        #可以在不同維度上使用索引操作來對數(shù)據(jù)進行切片
        data12 = np.array([[1,2],[3,4],[5,6]])
        print(data12)
        print(data12[0,1]) #1行2列數(shù)據(jù)
        print(data12[1:3]) #2-3行
        print(data12[0:2,0]) #1-2行,1列
        Out:
        [[1 2]
         [3 4]
         [5 6]]
        2
        [[3 4]
         [5 6]]
        [1 3]

        In:
        #可以像聚合向量一樣聚合矩陣
        print(data12.max())
        print(data12.min())
        print(data12.sum())
        print(data12.mean())
        print(data12.std())
        #還可以使用axis參數(shù)指定行和列的聚合
        print(data12.max(axis = 0)) #縱向執(zhí)行
        print(data12.max(axis = 1)) #橫向執(zhí)行
        Out:
        6
        1
        21
        3.5
        1.707825127659933
        [5 6]
        [2 4 6]


        矩陣轉(zhuǎn)置和重構


        In:
        #NumPy數(shù)組的屬性T可用于獲取矩陣的轉(zhuǎn)置
        print('轉(zhuǎn)置前:\n',data12)
        print('轉(zhuǎn)置后:\n',data12.T)
        Out:
        轉(zhuǎn)置前:
         [[1 2]
         [3 4]
         [5 6]]
        轉(zhuǎn)置后:
         [[1 3 5]
         [2 4 6]]


        In:

        #在較為復雜的用例中,可能需要使用NumPy的reshape()方法改變某個矩陣的維度
        data13 = np.array([1,2,3,4,5,6])
        print('重構前:\n',data13)
        print('重構后:\n',data13.reshape(2,3))
        print('重構后:\n',data13.reshape(3,2))

        Out:

        重構前:
         [1 2 3 4 5 6]
        重構后:
         [[1 2 3]
         [4 5 6]]
        重構后:
         [[1 2]
         [3 4]
         [5 6]]


        In:

        #上文中的所有功能都適用于多維數(shù)據(jù),其中心數(shù)據(jù)結構稱為ndarray(N維數(shù)組)
        data14 = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
        print(data14)
        print('-'*20)
        #改變維度只需在NumPy函數(shù)的參數(shù)中添加一個逗號和維度
        print(np.ones((4,3,2)))
        print('-'*20)
        print(np.zeros((4,3,2)))
        print('-'*20)
        print(np.random.random((4,3,2)))

        Out:

        [[[1 2]
          [3 4]]

         [[5 6]
          [7 8]]]
        --------------------
        [[[1. 1.]
          [1. 1.]
          [1. 1.]]

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

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

         [[1. 1.]
          [1. 1.]
          [1. 1.]]]
        --------------------
        [[[0. 0.]
          [0. 0.]
          [0. 0.]]

         [[0. 0.]
          [0. 0.]
          [0. 0.]]

         [[0. 0.]
          [0. 0.]
          [0. 0.]]

         [[0. 0.]
          [0. 0.]
          [0. 0.]]]
        --------------------
        [[[0.37593802 0.42651876]
          [0.74639264 0.19783467]
          [0.787414   0.63820259]]

         [[0.84871262 0.46467497]
          [0.54633954 0.4376995 ]
          [0.71988166 0.9306682 ]]

         [[0.6384108  0.74196991]
          [0.73857164 0.38450555]
          [0.68579442 0.64018511]]

         [[0.60382775 0.35889667]
          [0.8625612  0.86523028]
          [0.83701853 0.08289658]]]






        公式應用





        In:

        #在NumPy中可以很容易地實現(xiàn)均方誤差。
        np_1 = np.ones(3)
        np_2 = np.array([1,2,3])
        error = (1/3) * np.sum(np.square(np_1 - np_2))
        print(error)

        Out:

        1.6666666666666665






        表示日常數(shù)據(jù)




        電子表格和數(shù)據(jù)表




        音頻和時間序列




        圖像


        黑白圖像


        彩色圖像



        相關閱讀:


        瀏覽 43
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            老鸭窝毛片观看 | 精品大香蕉 | chinese麻豆videoxxxx年轻 | 久久久久91精品推荐99 | 干美女网站 | 欧美做爱视频在线 | 精品少妇一区二区三区免费观看 | 欧美亚洲在线观看 | 好湿好爽视频 | 成人韩国三级 |