numpy廣播,掩碼操作

2022-07-01 04:33:08 字數 994 閱讀 3008

#

++++++++++++++++++++++++++++++++廣播操作+++++++++++++++++++++++++++++++++++

x = np.arange(9).reshape(3,3)

y = x+3z = np.arange(3).reshape(3,1)

print(x+3)#

標量廣播

print(x+z)#

向量廣播

print(x[0,:]+z)#

兩個陣列同時廣播

#廣播規則:

#規則1:如果兩個陣列的維度數不同,則小維度陣列的shape將會在最左邊補1

#規則2:如果兩個陣列的形狀在任何乙個維度上都不匹配,那麼陣列的形狀會沿著維度為1的維度擴充套件以匹配另外乙個陣列的形狀

#規則3:如果兩個陣列的形狀在任何乙個維度上都不匹配且沒有任何乙個維度等於1,那麼會引發異常

m = np.ones((2,3))

n = np.arange(3)

print(m+n)

#廣播的應用

#陣列歸一化

x = np.random.randint(10,size=(5,3))

mean =x.mean(0)

nx = x-mean

print

(nx)

##二維函式

x = np.linspace(0, 5 , 50)

y = np.linspace(0, 5 , 50)[:,np.newaxis]

z = x ** 2 + y ** 2plt.imshow(z ,origin='

lower

' ,extent=[0,5,0,5],cmap='

viridis')

plt.colorbar()

plt.show()

#掩碼操作

x = np.arange(10)

print(x[x>5])

print(x>5)

numpy廣播機制

1.廣播法則是為了更好的處理不同維數矩陣之間的運算 1 廣播第一法則是,如果所有的輸入陣列維度不都相同,乙個 1 將被重複地新增在維度較小的陣列上直至所有的陣列擁有一樣的維度。2 廣播第二法則確定長度為1的陣列沿著特殊的方向表現地好像它有沿著那個方向最大形狀的大小。對陣列來說,沿著那個維度的陣列元素...

對Numpy廣播操作的理解

1.首先檢查兩個矩陣維數是否相同,若不同,對維數少的補一。注意這裡的維數不是指n行d列中的n和d的值,對於一般的矩陣維數就是2。若乙個兩維的矩陣 n,d 和乙個一維的陣列 m,相乘,補一操作就是將那個一維的陣列變為 1,m 補一總是在shape陣列的開始補一。2.輸出陣列是輸入陣列各維度 軸 的最大...

numpy陣列廣播詳解

numpy陣列的廣播功能強大,但是也同時讓人疑惑不解,現在讓我們來談談其中的原理。廣播原則 如果兩個陣列的後緣維度 即 從末尾開始算起的維度 的軸長相符或其中一方的長度為1,則認為它們是廣播相容的,廣播會在缺失和 或 長度為1的軸上進行.上面的原則很重要,是廣播的指導思想,下面我們來看看例子。1.其...