python-将2d数组乘以1d数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-将2d数组乘以1d数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含890字,纯文字阅读大概需要2分钟。
内容图文
我有一个形状为(k,n)的2D数组a,我想将它与形状(m,)的一维数组b’相乘’:
a = np.array([[2, 8],
[4, 7],
[1, 2],
[5, 2],
[7, 4]])
b = np.array([3, 5, 5])
由于“乘法”,我正在寻找:
array([[[2*3,2*5,2*5],[8*3,8*5,8*5]],
[[4*3,4*5,4*5],[7*3,7*5,7*5]],
[[1*3,1*5,1*5], ..... ]],
................. ]]])
= array([[[ 6, 10, 10],
[24, 40, 40]],
[[12, 20, 20],
[21, 35, 35]],
[[ 3, 5, 5],
[ ........ ]],
....... ]]])
我当然可以通过循环来解决它,但是我正在寻找一种快速的矢量化方法.
解决方法:
将a扩展到3D数组的情况,方法是在np.newaxis/None的末尾添加一个新轴,然后与b进行元素乘法,从而将broadcasting引入矢量化解决方案,如下所示-
b*a[...,None]
样品运行-
In [19]: a
Out[19]:
array([[2, 8],
[4, 7],
[1, 2],
[5, 2],
[7, 4]])
In [20]: b
Out[20]: array([3, 5, 5])
In [21]: b*a[...,None]
Out[21]:
array([[[ 6, 10, 10],
[24, 40, 40]],
[[12, 20, 20],
[21, 35, 35]],
[[ 3, 5, 5],
[ 6, 10, 10]],
[[15, 25, 25],
[ 6, 10, 10]],
[[21, 35, 35],
[12, 20, 20]]])
内容总结
以上是互联网集市为您收集整理的python-将2d数组乘以1d数组全部内容,希望文章能够帮你解决python-将2d数组乘以1d数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。