1. 程式人生 > >【python入門】multiply用法

【python入門】multiply用法

multiply(a,b)就是個乘法,如果a,b是兩個陣列,那麼對應元素相乘

先來看個例子:

為什麼上面的multiply(a, b)是這種結果,原因是multiply是ufunc函式

當我們使用ufunc函式對兩個陣列進行計算時,ufunc函式會對這兩個陣列的對應元素進行計算,因此它要求這兩個陣列有相同的大小(shape相同)。如果兩個陣列的shape不同的話,會進行如下的廣播(broadcasting)處理:

  1. 讓所有輸入陣列都向其中shape最長的陣列看齊,shape中不足的部分都通過在前面加1補齊
  2. 輸出陣列的shape是輸入陣列shape的各個軸上的最大值
  3. 如果輸入陣列的某個軸和輸出陣列的對應軸的長度相同或者其長度為1時,這個陣列能夠用來計算,否則出錯
  4. 當輸入陣列的某個軸的長度為1時,沿著此軸運算時都用此軸上的第一組值

上述4條規則理解起來可能比較費勁,讓我們來看一個實際的例子。

先建立一個二維陣列a,其shape為(6,1):
>>> a = np.arange(0, 60, 10).reshape(-1, 1)
>>> a
array([[ 0], [10], [20], [30], [40], [50]])
>>> a.shape
(6, 1)
再建立一維陣列b,其shape為(5,):
>>> b = np.arange(0, 5)
>>> b
array([0, 1, 2, 3, 4]) >>> b.shape (5,)

計算a和b的和,得到一個加法表,它相當於計算a,b中所有元素組的和,得到一個shape為(6,5)的陣列:

>>> c = a + b
>>> c
array([[ 0,  1,  2,  3,  4],
       [10, 11, 12, 13, 14],
       [20, 21, 22, 23, 24],
       [30, 31, 32, 33, 34],
       [40, 41, 42, 43, 44],
       [50, 51, 52, 53, 54]])
>>> c.shape (6, 5)

由於a和b的shape長度(也就是ndim屬性)不同,根據規則1,需要讓b的shape向a對齊,於是將b的shape前面加1,補齊為(1,5)。相當於做了如下計算:

>>> b.shape=1,5
>>> b
array([[0, 1, 2, 3, 4]])

這樣加法運算的兩個輸入陣列的shape分別為(6,1)和(1,5),根據規則2,輸出陣列的各個軸的長度為輸入陣列各個軸上的長度的最大值,可知輸出陣列的shape為(6,5)。

由於b的第0軸上的長度為1,而a的第0軸上的長度為6,因此為了讓它們在第0軸上能夠相加,需要將b在第0軸上的長度擴充套件為6,這相當於:

>>> b = b.repeat(6,axis=0)
>>> b
array([[0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4],
       [0, 1, 2, 3, 4]])

由於a的第1軸的長度為1,而b的第一軸長度為5,因此為了讓它們在第1軸上能夠相加,需要將a在第1軸上的長度擴充套件為5,這相當於:

>>> a = a.repeat(5, axis=1)
>>> a
array([[ 0,  0,  0,  0,  0],
       [10, 10, 10, 10, 10],
       [20, 20, 20, 20, 20],
       [30, 30, 30, 30, 30],
       [40, 40, 40, 40, 40],
       [50, 50, 50, 50, 50]])

經過上述處理之後,a和b就可以按對應元素進行相加運算了。

當然,numpy在執行a+b運算時,其內部並不會真正將長度為1的軸用repeat函式進行擴充套件,如果這樣做的話就太浪費空間了

這樣,就能知道為什麼multiply(a, b)是這種結果了 from:http://blog.csdn.net/qq_18433441/article/details/54868889

最近訪問

玻璃钢生产厂家玻璃钢及铜金属雕塑工程招标江苏装饰商场美陈厂家直销衡水玻璃钢仿铜雕塑定制亳州玻璃钢雕塑厂家四川周年庆典商场美陈厂家供应福州园林玻璃钢雕塑哪家好小品玻璃钢卡通雕塑浙江常用商场美陈销售企业秋季商场美陈市场价湖北定制玻璃钢雕塑方法现代玻璃钢人物雕塑永川玻璃钢雕塑广东秋季商场美陈销售厂家新津玻璃钢卡通雕塑溧水主题商场美陈安徽公园玻璃钢雕塑哪家便宜海南卡通玻璃钢雕塑大量销售济源人物玻璃钢卡通雕塑厂家新乡不锈钢玻璃钢人物雕塑公司黑河动物玻璃钢雕塑公司陕西玻璃钢海豚雕塑定制沈阳制作玻璃钢雕塑厂家玻璃钢卡通雕塑详情玻璃钢雕塑教程珠海公园摆件玻璃钢卡通雕塑商场的美陈西藏电镀玻璃钢雕塑设计上海玻璃钢奶牛雕塑长沙步行街玻璃钢雕塑特色商场美陈多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化