1. 程式人生 > >Numpy學習三:數組運算

Numpy學習三:數組運算

元組 第一個 表示 tran 維數 pos nes 視圖 對數

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

Numpy學習三:數組運算