日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

關于numpy兩個array疊加操作詳解_python

作者:驚瑟 ? 更新時間: 2022-09-29 編程語言

numpy中有很多關于兩個array的操作,疊加方式以及疊加后的維度經常令人迷惑,這篇文章總價一下。

一、 疊加操作

1.add

逐元素操作,若是array + 常量會廣播到每個元素,若是array + array則要求兩個arrayshape一致。

end = '\n'+'*'*50+'\n'
a = np.array([[1,2],[3,4]])
b = np.array([[5,6], [7,8]])
print(a+1, end=end)
print(a+b)

輸出:

[[2 3]
?[4 5]]
**************************************************
[[ 6 ?8]
?[10 12]]

2.concatenate

在指定維度將兩個array進行拼接,不會改變array的維度,要求兩個array的維度相同,且在指定的拼接維度的array size也必須相等,值得注意的是,兩個array的shape不一定一致,比較拗口,看下例子:

end = '\n'+'*'*50+'\n'
a = np.array([[1,2],[3,4]])
b = np.array([[5,6], [7,8]])
c = np.array([[5,6]])
d = np.array([5,6])
f = np.array([[5]])

a & c 的shape并不相同:

維度不一致:

長度不一致:

3.stack & hstack

stack 在垂直方向上拼接兩個array(可以指定axis),要求兩個array的shape嚴格一致,結果會增加維度;

hstack 在水平方向(第0維,不可制定axis)拼接兩個array,要求兩者的維度相同,且在第0維的size也相同,拼接結果不改變原有維度 。

stack:結果會在原有維度的基礎上加1

hstack,a和c在0軸的size不同:

hstack,轉置后正常拼接:

二、 size & ndim & shape

這三個概念很容易搞混,其中:

  • size:指的是“元素個數”;
  • ndim:維度,指的是“有多少層嵌套”,即中括號個數,同時和shape的len相等,axis=0指的是最外層中括號,往里依次遞增;
  • shape:size和ndim綜合起來就是shape,兩個array的shape相同則意味著兩者的ndim相同且在每一個axis上的size也相同。

看下例子:

值得注意的是,ndim和size以及shape沒有必然聯系,一個ndim不為0的array可能一個元素也沒有:

size相同,shape和ndim也不一定相同:

總結?

原文鏈接:https://blog.csdn.net/qq_34062683/article/details/126100834

欄目分類
最近更新