最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則

 更新時(shí)間:2023年08月24日 08:48:15   作者:little_fat_sheep  
這篇文章主要介紹了關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則,眾所周知,相同?shape?的兩個(gè)數(shù)組間運(yùn)算是指兩個(gè)數(shù)組的對(duì)應(yīng)元素相加,我們經(jīng)常會(huì)碰到一些不同?shape?的數(shù)組間運(yùn)算,需要的朋友可以參考下

1 數(shù)組間運(yùn)算

聲明:本博客討論的數(shù)組間運(yùn)算是指四則運(yùn)算,如:a+b、a-b、a*b、a/b,不包括 a.dot(b) 等運(yùn)算,由于 numpy 和 tensorflow 中都遵循相同的規(guī)則,本博客以 numpy 為例。

眾所周知,相同 shape 的兩個(gè)數(shù)組間運(yùn)算是指兩個(gè)數(shù)組的對(duì)應(yīng)元素相加。我們經(jīng)常會(huì)碰到一些不同 shape 的數(shù)組間運(yùn)算。

那么,任何兩個(gè)不同 shape 的數(shù)組都能運(yùn)算么?又遵循什么樣的運(yùn)算規(guī)則?

shape 與維數(shù):

如 a:[1,2,3],則 shape=(3, ),維數(shù)為1;b:[[1,2,3],[4,5,6]],則shape=(2,3),維數(shù)為2

運(yùn)算條件:

設(shè)a為低維數(shù)組,b為高維數(shù)組,則a和b能運(yùn)算的充分條件是:a.shape[-1]=b.shape[-1]、a.shape[-2]= b.shape[-2]、...(a可以作為b的一個(gè)元素),或者 a.shape=(m,1)(或a.shape=(m, )) 且b.shape=(1,n) (a為行向量,b為列向量)

運(yùn)算規(guī)則:

  • 當(dāng)a為數(shù)字時(shí),將a與b的每個(gè)元素運(yùn)算,運(yùn)算后的 shape 與b相同當(dāng)
  • a可以作為b的一個(gè)元素,將a與b中每個(gè)相同 shape 的子元素運(yùn)算,運(yùn)算后的 shape 與b相同
  • 當(dāng)a為行向量b為列向量時(shí),將a中每個(gè)元素與b中每個(gè)元素分別運(yùn)算,運(yùn)算后的 shape=(a.shape[1], b.shape[0])

如需改變數(shù)組 shape,可調(diào)用 reshape() 函數(shù),如下:

a=np.array([[1,1],[2,2],[3,3]])
b=a.reshape([-1,1]) #a.shape=(3,2),b.shape=(6,1)

2 實(shí)驗(yàn)

數(shù)組與數(shù)字之間的運(yùn)算

a=np.array([1,1,1])
b=np.array([[1,1,1],[2,2,2]])
c=a+1
d=b+1
print("c=a+1\n",c)
print("d=b+1\n",d)

輸出
c=a+1
 [2 2 2]
d=b+1
 [[2 2 2]
 [3 3 3]]

補(bǔ)充:shape=(1, ) 的數(shù)組可以與任意 shape 的數(shù)組運(yùn)算,運(yùn)算規(guī)則同數(shù)字與數(shù)組的運(yùn)算。

行向量與列向量之間的運(yùn)算

a=np.array([[1,2,3]]) #或 a=np.array([1,2,3])
b=np.array([[1],[2],[3],[4],[5]])
c=a+b
print("c=a+b",c)

輸出
c=a+b
[[2 3 4]
 [3 4 5]
 [4 5 6]
 [5 6 7]
 [6 7 8]]

1維數(shù)組與高維數(shù)組之間的運(yùn)算

a=np.array([1,1,1])
b=np.array([[1,1,1],[2,2,2]])
c=np.array([[1,1,1],[2,2,2],[3,3,3]])
d=a+b
e=a+c
print("d=a+b\n",d)
print("e=a+c\n",e)

d=a+b
 [[2 2 2]
 [3 3 3]]
e=a+c
 [[2 2 2]
 [3 3 3]
 [4 4 4]]

高維數(shù)組之間的運(yùn)算

a=np.array([[1,1,1],[2,2,2]])
b=np.array([[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]])
c=a+b
print("c=a+b\n",c)

c=a+b
 [[[2 2 2]
  [4 4 4]]
 [[4 4 4]
  [6 6 6]]]

到此這篇關(guān)于關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則的文章就介紹到這了,更多相關(guān)Python兩個(gè)不同shape的數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

云阳县| 南和县| 莱芜市| 剑阁县| 大庆市| SHOW| 鹤庆县| 固原市| 芷江| 广州市| 迁西县| 宾阳县| 衢州市| 张家界市| 开封县| 榕江县| 平原县| 垣曲县| 濮阳市| 花莲市| 沂源县| 九寨沟县| 平果县| 隆林| 禹城市| 六安市| 阿尔山市| 济宁市| 常德市| 益阳市| 九龙坡区| 焉耆| 沁源县| 津南区| 台东市| 宣恩县| 柳江县| 商都县| 白银市| 峨眉山市| 南岸区|