Numpy學習三:數組運算


1、轉置

#reshape(shape)函數改變數組形狀,shape是一個元組,表示數組的形狀

創建一個包含15個元素的一維數組,通過reshape函數調整數組形狀為3行5列的二維數組
arr = np.arange(15).reshape((3,5))
print(arr)

結果:[[ 0  1  2  3  4]
            [ 5  6  7  8  9]
            [10 11 12 13 14]]

#轉置,數組轉置可以使用transpose方法或者T屬性,轉置返回的是源數組的視圖,不會進行任何復制操作

#將3行5列的二維數組arr轉置為5行3列的二維數組
arr.transpose()

結果:array([[ 0,  5, 10],
                     [ 1,  6, 11],
                     [ 2,  7, 12],
                     [ 3,  8, 13],
                     [ 4,  9, 14]])

#使用T屬性實現轉置
arr.T

結果:array([[ 0,  5, 10],
                     [ 1,  6, 11],
                     [ 2,  7, 12],
                     [ 3,  8, 13],
                     [ 4,  9, 14]])

2、算數運算

#注意:兩個數組做算數法要求兩個數組的結構要相同

#數組加法,兩個數組對應位置的元素相加

arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.ones((2,3)) #2行3列的全1數組
arr1 + arr2 #相當於給數組arr1中的每個元素加1

結果:array([[ 2.,  3.,  4.],
                     [ 5.,  6.,  7.]])

#數組減法,兩個數組對應位置的元素相減
arr1 - arr2

結果:array([[ 0.,  1.,  2.],
                     [ 3.,  4.,  5.]])

#數組乘法,兩個數組對應位置的元素相乘
arr3 = np.array([[2,2,2],[2,2,2]])
arr1 * arr3

結果:array([[ 2,  4,  6],
                     [ 8, 10, 12]])

#使用tile函數構造數組,上一個arr3構造具有相同元素的數組非常麻煩,使用tile函數非常簡潔
#第一個參數表示需要復制的數組,第二個參數是對應的軸方向上復制的次數

#第2個參數(2,3)表示在第0軸方向復制2次,第1軸方向復制3次,這樣就構成了一個2行3列的二維數組

arr4 = np.tile([2],(2,3))
print(arr4)

結果:[[2 2 2]
           [2 2 2]]

#數組除法,兩個數組對應位置的元素相除

arr1 / arr4

結果:array([[ 0.5,  1. ,  1.5],
                     [ 2. ,  2.5,  3. ]])

3、數組與標量算術運算

#對數組中每個元素求平方

arr1 ** 2

結果:array([[ 1,  4,  9],
                     [16, 25, 36]], dtype=int32)

#數組arr1中的每個元素加10

arr1 + 10

結果:array([[11, 12, 13],
                     [14, 15, 16]])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM