【热闻】关于numpy两个array叠加操作详解
目录
一、 叠加操作1.add2.concatenate3.stack & hstack二、 size & ndim & shape总结numpy中有很多关于两个array的操作,叠加方式以及叠加后的维度经常令人迷惑,这篇文章总价一下。
(资料图)
一、 叠加操作
1.add
逐元素操作,若是array + 常量
会广播到每个元素,若是array + array
则要求两个array
的shape
一致。
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也不一定相同:
总结
到此这篇关于numpy两个array叠加操作的文章就介绍到这了,更多相关numpy两个array叠加内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 2转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 3充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 4好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 5名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 6亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 7京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 8网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 9市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 10北京市市场监管局为企业纾困减负保护经济韧性