numpy 学习汇总15 -广播 ( 基础学习 tcy)
生活随笔
收集整理的這篇文章主要介紹了
numpy 学习汇总15 -广播 ( 基础学习 tcy)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
廣播 2018/6/19 2018/11/21
===================================================================
1.說明:廣播描述了算術(shù)運(yùn)算期間numpy如何處理具有不同形狀的數(shù)組
NumPy使用廣播決定處理不同形狀陣列; 如算術(shù)運(yùn)算(+, -,*,陣列操作之前廣播。2.規(guī)則1) 兩個(gè)維度對(duì)應(yīng)相等或是1;不等一方必為1 ;缺失一方必為0;
2) 從尾隨的維度開始前進(jìn),較小的軸展開為較大的軸3.實(shí)例
A (2d array): 3 x 1
B (1d array): 1 x 4 # Result (2d array): 3 x 4# 不會(huì)廣播:
A (1d array): 3
B (1d array): 4 #例子1:a = np.array([10.0, 20.0, 30.0, 40.0])
b = np.array([1.0, 2.0, 3.0])
a1=a[:, np.newaxis]#newaxis索引操作符插入一個(gè)新的軸a,使其成為一個(gè)二維4x1數(shù)組array([[10.],[20.],[30.],[40.]])a1+barray([[11., 12., 13.],[21., 22., 23.],[31., 32., 33.],[41., 42., 43.]])===================================================================
?
# 實(shí)例2: numpy.broadcast該函數(shù)模仿廣播機(jī)制,接受兩個(gè)數(shù)組為輸入。 x=np.array([[1],[2],[3]]) y=np.array([4,5,6]) b=np.broadcast(x,y)r,c=b.iters print(r.__next__(), c.__next__()) print(r.__next__(), c.__next__()) print(b.shape) c=np.empty(b.shape) print(c.shape) c.flat=[u+v for (u,v) in b] print(c) print(x+y)# 輸出: 1 4 1 5 (3, 3) (3, 3) [[7. 6. 7.][8. 7. 8.][9. 4. 5.]] [[5 6 7][6 7 8][7 8 9]]# 實(shí)例3:numpy.broadcast_to(array, shape, subok)函數(shù) 該函數(shù)將數(shù)組廣播為一個(gè)新的shape,返回原數(shù)組一個(gè)只讀視圖,是個(gè)非連續(xù)的, 還可能會(huì)返回不滿足NumPy廣播規(guī)則的ValueError。a=np.arange(4).reshape(1,4) print(a) print(np.broadcast_to(a,(4,4)))# 輸出: [[0 1 2 3]] [[0 1 2 3][0 1 2 3][0 1 2 3][0 1 2 3]]總結(jié)
以上是生活随笔為你收集整理的numpy 学习汇总15 -广播 ( 基础学习 tcy)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++编程原则2 tcy
- 下一篇: log4j配置详解及日志等级设置