久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領取全套視頻
        千鋒教育

        關注千鋒學習站小程序
        隨時隨地免費學習課程

        當前位置:首頁  >  技術(shù)干貨  > Python模塊:NumPy的高性能科學計算

        Python模塊:NumPy的高性能科學計算

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-07-21 16:43:54 1689929034

        一、NumPy初識

        NumPy是Python中最流行的科學計算庫之一。它提供多維數(shù)組對象和一系列用于處理數(shù)組的函數(shù)。NumPy的核心是ndarray(n-dimensional array)對象,它是一個大小固定、同一類型元素的多維數(shù)組。

        在使用NumPy之前,需要先安裝它。使用pip命令可以很輕松地安裝它。在終端中輸入以下命令即可:

        
        pip install numpy
        

        成功安裝后,我們可以導入NumPy并查看其版本:

        
        import numpy as np
        
        print(np.__version__)
        

        輸出的結(jié)果應該類似于“1.16.2”。

        二、NumPy數(shù)組

        NumPy中最重要的對象是ndarray??梢杂靡韵麓a創(chuàng)建一個一維數(shù)組:

        
        import numpy as np
        
        arr1d = np.array([1, 2, 3, 4, 5])
        print(arr1d)
        

        輸出結(jié)果:[1 2 3 4 5]

        也可以創(chuàng)建二維、三維甚至更高維度的數(shù)組。

        從列表創(chuàng)建ndarray時,NumPy會嘗試自動推導出數(shù)組中元素的類型:

        
        import numpy as np
        
        arr1d = np.array([1, 2, 3, 4, 5])
        arr2d = np.array([[1, 2, 3], [4, 5, 6]])
        arr3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
        
        print(arr1d.dtype)
        print(arr2d.dtype)
        print(arr3d.dtype)
        

        輸出結(jié)果:

        
        int64
        int64
        int64
        

        可以看出,NumPy會嘗試選擇最小的數(shù)據(jù)類型以儲存數(shù)組中的元素。在這個例子中,數(shù)組中的元素都是整數(shù),所以NumPy選擇了int64類型。

        數(shù)組中的元素可以使用下標進行訪問,如:

        
        import numpy as np
        
        arr1d = np.array([1, 2, 3, 4, 5])
        arr2d = np.array([[1, 2, 3], [4, 5, 6]])
        arr3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
        
        print(arr1d[0])
        print(arr2d[0, 1])
        print(arr3d[1, 0, 1])
        

        輸出結(jié)果:

        
        1
        2
        6
        

        三、NumPy的高級用法

        1、數(shù)組操作

        數(shù)組拼接、分裂、重塑、轉(zhuǎn)置、展平等操作是NumPy中最常用的操作之一。在此僅介紹其中的一些,更多操作請參考NumPy文檔。

        例如,可以使用以下代碼將兩個一維數(shù)組沿著列方向拼接:

        
        import numpy as np
        
        arr1 = np.array([1,2,3])
        arr2 = np.array([4,5,6])
        
        result = np.concatenate([arr1, arr2])
        
        print(result)
        

        輸出結(jié)果:[1 2 3 4 5 6]

        還可以在二維數(shù)組上進行拼接操作,如下:

        
        import numpy as np
        
        arr1 = np.array([[1, 2], [3, 4]])
        arr2 = np.array([[5, 6]])
        
        result = np.concatenate([arr1, arr2], axis=0)
        
        print(result)
        

        輸出結(jié)果:

        
        [[1 2]
         [3 4]
         [5 6]]
        

        還可以使用vstack或hstack函數(shù)將數(shù)組沿著垂直或水平方向拼接。

        重塑數(shù)組可以使用reshape函數(shù)。例如,可以將一個一維數(shù)組重塑為3x3的二維數(shù)組:

        
        import numpy as np
        
        arr = np.array([1,2,3,4,5,6,7,8,9])
        
        result = arr.reshape((3, 3))
        
        print(result)
        

        輸出結(jié)果:

        
        [[1 2 3]
         [4 5 6]
         [7 8 9]]
        

        transpos函數(shù)可以將數(shù)組轉(zhuǎn)置,如下:

        
        import numpy as np
        
        arr = np.arange(9).reshape((3,3))
        
        result = np.transpose(arr)
        
        print(result)
        

        輸出結(jié)果:

        
        [[0 3 6]
         [1 4 7]
         [2 5 8]]
        

        flatten函數(shù)可以將多維數(shù)組展平為一維數(shù)組,如下:

        
        import numpy as np
        
        arr = np.arange(9).reshape((3,3))
        
        result = arr.flatten()
        
        print(result)
        

        輸出結(jié)果:

        
        [0 1 2 3 4 5 6 7 8]
        

        2、數(shù)組運算

        NumPy提供了大量的數(shù)學函數(shù)和運算符,可以像操作標量一樣操作數(shù)組。

        可以使用以下代碼實現(xiàn)數(shù)組的加減乘除:

        
        import numpy as np
        
        a = np.array([1,2,3])
        b = np.array([4,5,6])
        
        print(a + b)
        print(a - b)
        print(a * b)
        print(a / b)
        

        輸出結(jié)果:

        
        [5 7 9]
        [-3 -3 -3]
        [ 4 10 18]
        [0.25 0.4  0.5 ]
        

        可以使用以下代碼實現(xiàn)數(shù)組的矩陣乘法:

        
        import numpy as np
        
        a = np.array([[1,2], [3,4]])
        b = np.array([[5,6], [7,8]])
        
        print(np.dot(a, b))
        

        輸出結(jié)果:

        
        [[19 22]
         [43 50]]
        

        3、數(shù)組統(tǒng)計

        NumPy可以進行各種統(tǒng)計運算,如平均值、標準差、最大值、最小值等。

        可以使用以下代碼求數(shù)組的平均值、標準差、最大值、最小值:

        
        import numpy as np
        
        arr = np.array([1, 2, 3, 4, 5])
        
        print(np.mean(arr))
        print(np.std(arr))
        print(np.max(arr))
        print(np.min(arr))
        

        輸出結(jié)果:

        
        3.0
        1.4142135623730951
        5
        1
        

        除了一維數(shù)組之外,NumPy還可以對多維數(shù)組進行統(tǒng)計運算。例如,可以使用以下代碼計算二維數(shù)組中每一列的平均值:

        
        import numpy as np
        
        arr = np.array([[1, 2], [3, 4], [5, 6]])
        
        print(np.mean(arr, axis=0))
        

        輸出結(jié)果:

        
        [3. 4.]
        

        4、廣播

        廣播是指在對兩個數(shù)組進行元素操作時,當數(shù)組的形狀不同時,對小數(shù)組進行擴張以匹配大數(shù)組的形狀。廣播操作可以減少內(nèi)存使用和運算次數(shù)。

        以下代碼示例演示了廣播的基本原理:

        
        import numpy as np
        
        arr1 = np.array([1,2,3])
        arr2 = np.array([4,5,6])
        
        result = arr1 * arr2
        
        print(result)
        

        輸出結(jié)果:

        
        [ 4 10 18]
        

        可以看出,數(shù)組arr1和arr2的形狀不同,但是它們的元素相乘得到的結(jié)果仍然是一個長度為3的數(shù)組。

        5、隨機數(shù)生成

        NumPy還提供了大量的隨機數(shù)生成函數(shù)。隨機數(shù)生成函數(shù)可以用于模擬隨機數(shù)據(jù)、生成測試數(shù)據(jù)等。

        以下代碼示例生成20個范圍在0-1之間的隨機數(shù):

        
        import numpy as np
        
        result = np.random.rand(20)
        
        print(result)
        

        輸出結(jié)果:

        
        [0.13966633 0.8146751  0.78852179 0.45093637 0.73117035 0.7654889
         0.83504567 0.61635283 0.2246247  0.43220779 0.95162422 0.77052108
         0.55811285 0.61789821 0.24398802 0.02599477 0.82493305 0.36772928
         0.19407716 0.1476306 ]
        

        6、圖片處理

        NumPy還可以用于圖像的處理。下面的這個例子把圖片中的每一個像素都進行了翻轉(zhuǎn):

        
        import numpy as np
        from PIL import Image
        
        im = Image.open("test.jpg")
        im.show()
        
        im_arr = np.array(im)
        im_arr_flip = np.fliplr(im_arr)
        im_flip = Image.fromarray(im_arr_flip)
        
        im_flip.show()
        

        輸出結(jié)果:

        
         #顯示原圖
        
         #顯示翻轉(zhuǎn)后的圖
        

        7、數(shù)據(jù)存取

        NumPy可以方便地將數(shù)組保存到文件中,并從文件中讀取數(shù)組數(shù)據(jù)。

        以下代碼示例將數(shù)組保存到文件中,并從文件中讀取出來:

        
        import numpy as np
        
        arr = np.array([1,2,3,4,5])
        
        np.save("arr.npy", arr)
        
        arr_loaded = np.load("arr.npy")
        
        print(arr_loaded)
        

        輸出結(jié)果:

        
        [1 2 3 4 5]
        

        總結(jié)

        這篇文章介紹了NumPy的基本用法,包括數(shù)組的創(chuàng)建、統(tǒng)計、數(shù)組運算、廣播、隨機數(shù)生成、圖片處理等。NumPy功能非常強大,有助于我們進行高效的科學計算。

        tags: python教程
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
        免費領取
        今日已有369人領取成功
        劉同學 138****2860 剛剛成功領取
        王同學 131****2015 剛剛成功領取
        張同學 133****4652 剛剛成功領取
        李同學 135****8607 剛剛成功領取
        楊同學 132****5667 剛剛成功領取
        岳同學 134****6652 剛剛成功領取
        梁同學 157****2950 剛剛成功領取
        劉同學 189****1015 剛剛成功領取
        張同學 155****4678 剛剛成功領取
        鄒同學 139****2907 剛剛成功領取
        董同學 138****2867 剛剛成功領取
        周同學 136****3602 剛剛成功領取
        相關推薦HOT
        衡南县| 五常市| 垫江县| 巴林左旗| 安顺市| 云南省| 诏安县| 北宁市| 丹棱县| 延边| 海安县| 苍溪县| 宕昌县| 喀喇沁旗| 南丰县| 岫岩| 孟连| 赣榆县| 仁怀市| 和政县| 黄平县| 潮安县| 万荣县| 石景山区| 雷山县| 资兴市| 正宁县| 高青县| 清原| 方山县| 海南省| 镇安县| 青铜峡市| 尉氏县| 兰溪市| 新民市| 蛟河市| 方山县| 平顶山市| 阿拉善盟| 和田县|