python3-numpy数组广播 和 np.tile 扩展数组
生活随笔
收集整理的這篇文章主要介紹了
python3-numpy数组广播 和 np.tile 扩展数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、數組廣播
import numpy as np""" 廣播(Broadcast)是 numpy 對不同形狀(shape)的數組進行數值計算的方式, 對數組的算術運算通常在相應的元素上進行。 如果兩個數組 a 和 b 形狀相同,即滿足 a.shape == b.shape,那么 a*b 的結果就是 a 與 b 數組對應位相乘。這要求維數相同,且各維度的長度相同。 """a = np.arange(12).reshape(4,3) print(a * 2) """ [[ 0 2 4][ 6 8 10][12 14 16][18 20 22]] """a = np.array([1,2,3,4]) b = np.array([10,20,30,40])print(a * b) # [ 10 40 90 160]""" 當運算中的 2 個數組的形狀不同時,numpy 將自動觸發廣播機制。如: """ a = np.arange(0, 12).reshape(4,3) b = np.array([1,2,3]) print(a) print(a + b) """ [[ 0 1 2][ 3 4 5][ 6 7 8][ 9 10 11]][[ 1 3 5][ 4 6 8][ 7 9 11][10 12 14]]4x3 的二維數組與長為 3 的一維數組相加,等效于把數組 b 在二維上重復 4 次再運算: """a = np.array([[0, 0, 0],[10, 10, 10],[20, 20, 20],[30, 30, 30]]) b = np.array([1, 2, 3]) bb = np.tile(b, (4, 1)) # 重復 b 的各個維度print(a + bb) """ [[ 1 2 3][11 12 13][21 22 23][31 32 33]] """2、np.tile 擴展數組
"""np.tile 擴展數組 np.tile(數組,(Y軸擴大倍數,X軸擴大倍數)) X軸或者Y軸 擴大一倍便為不復制 """ bb = np.tile(b, (4, 1)) # 把 b 沿Y軸擴大4倍 沿X軸不變 print(bb) """ [[1 2 3][1 2 3][1 2 3][1 2 3]] """# 沿X軸復制 print(np.tile(b, (2))) # [1 2 3 1 2 3]https://www.runoob.com/numpy/numpy-broadcast.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python3-numpy数组广播 和 np.tile 扩展数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序开发(6)-之自定义导航栏
- 下一篇: 【算法】合并两个有序数组【LeetCod