<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Numpy入門,看這一篇就夠了!

          共 4041字,需瀏覽 9分鐘

           ·

          2021-10-23 10:49


          大家好,我是J哥。??


          本文系統(tǒng)講解Numpy基礎(chǔ)知識(shí),對于初學(xué)數(shù)據(jù)處理和分析幫助很多,希望你能收藏此文,好好學(xué)習(xí),以下是本文框架結(jié)構(gòu):



          本文目錄





          定義









          數(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ù)組的值,只需傳入元素個(gè)數(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ù)組運(yùn)算


          In:
          #首先創(chuàng)建兩個(gè)數(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ù)組與單個(gè)數(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:
          #類似列表操作進(jìn)行索引和切片
          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())?#標(biāo)準(zhǔn)差
          Out:
          5
          1
          3.0
          15
          1.4142135623730951





          矩陣操作



          創(chuàng)建矩陣


          In:
          #方法一、通過將二維列表傳給Numpy來創(chuàng)建矩陣
          print(np.array([[1,2],[3,4]]))
          #方法二、傳入一個(gè)元組來描述矩陣的維度
          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]]


          矩陣運(yùn)算


          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:
          #不同大小矩陣的加減乘除(僅兩個(gè)矩陣秩數(shù)為1時(shí))
          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ù)進(jìn)行切片
          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)置和重構(gòu)


          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:

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

          Out:

          重構(gòu)前:
          ?[1?2?3?4?5?6]
          重構(gòu)后:
          ?[[1?2?3]
          ?[4?5?6]]
          重構(gòu)后:
          ?[[1?2]
          ?[3?4]
          ?[5?6]]


          In:

          #上文中的所有功能都適用于多維數(shù)據(jù),其中心數(shù)據(jù)結(jié)構(gòu)稱為ndarray(N維數(shù)組)
          data14?=?np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
          print(data14)
          print('-'*20)
          #改變維度只需在NumPy函數(shù)的參數(shù)中添加一個(gè)逗號(hào)和維度
          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]]]






          公式應(yīng)用





          In:

          #在NumPy中可以很容易地實(shí)現(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ù)表




          音頻和時(shí)間序列




          圖像


          黑白圖像


          彩色圖像


          瀏覽 39
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕无码日韩专区免费 | 成人性爱视频网 | 欧美性爱xxxx黑人xxxx | 边打电话边操逼 | 欧美日韩国产中文精品字幕自在 |