国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

            手機站
            千鋒教育

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

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

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

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

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

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

            一、NumPy初識

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

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

            
            pip install numpy
            

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

            
            import numpy as np
            
            print(np.__version__)
            

            輸出的結果應該類似于“1.16.2”。

            二、NumPy數組

            NumPy中最重要的對象是ndarray。可以用以下代碼創(chuàng)建一個一維數組:

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

            輸出結果:[1 2 3 4 5]

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

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

            
            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)
            

            輸出結果:

            
            int64
            int64
            int64
            

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

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

            
            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])
            

            輸出結果:

            
            1
            2
            6
            

            三、NumPy的高級用法

            1、數組操作

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

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

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

            輸出結果:[1 2 3 4 5 6]

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

            
            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)
            

            輸出結果:

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

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

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

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

            輸出結果:

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

            transpos函數可以將數組轉置,如下:

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

            輸出結果:

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

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

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

            輸出結果:

            
            [0 1 2 3 4 5 6 7 8]
            

            2、數組運算

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

            可以使用以下代碼實現數組的加減乘除:

            
            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)
            

            輸出結果:

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

            可以使用以下代碼實現數組的矩陣乘法:

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

            輸出結果:

            
            [[19 22]
             [43 50]]
            

            3、數組統(tǒng)計

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

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

            
            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))
            

            輸出結果:

            
            3.0
            1.4142135623730951
            5
            1
            

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

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

            輸出結果:

            
            [3. 4.]
            

            4、廣播

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

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

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

            輸出結果:

            
            [ 4 10 18]
            

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

            5、隨機數生成

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

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

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

            輸出結果:

            
            [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還可以用于圖像的處理。下面的這個例子把圖片中的每一個像素都進行了翻轉:

            
            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()
            

            輸出結果:

            
             #顯示原圖
            
             #顯示翻轉后的圖
            

            7、數據存取

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

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

            
            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)
            

            輸出結果:

            
            [1 2 3 4 5]
            

            總結

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

            tags: python教程
            聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
            10年以上業(yè)內強師集結,手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內將與您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