python - Numpy 数组乘法
问题描述
尽管我确信之前有人问过这个问题,但我似乎在 stackoverflow 上找不到这个问题。
我有两个 numpy 数组,如下所示:
a = np.ones(shape = (2,10))
b = np.ones(2)
我想将 a 的 10 的第一行乘以 b 中的第一个数字,将第二行乘以第二个数字。我可以使用如下列表来做到这一点:
np.array([x*y for x,y in zip(b,a)])
我想知道是否有一种方法可以在 numpy 中执行此操作,这与 list 方法类似。
我知道我可以将 a 重塑为 (1,2,10) 并将 b 重塑为 (2,1) 以有效地实现这一目标 - 这是唯一的解决方案吗?或者是否有一种 numpy 方法可以在不手动重塑的情况下做到这一点。
解决方案
这可能是您正在寻找的:
a*np.tile(np.expand_dims(b,axis=1),(1,10))
如果要使用自动 numpy 广播,则需要先重塑 b:
np.multiply(a, b.reshape(2,1))
推荐阅读
- r - 打印 y 轴标题,数字提高到 10 次方和实数乘法符号
- android - 由于 NDK 版本不兼容,Android 构建在 CI 中失败,但在本地不兼容
- c++ - 给定一个整数数组,需要在 Max_Heap 上运行操作。收到错误“分段错误”,有什么想法吗?(C++)
- android - 在仪器测试中实例化一个单例类创建另一个实例而不是使用前一个实例
- ruby-on-rails - Rails 应用程序无法在 Heroku 上加载根路径“/”
- php - Laravel 5.5 到 Laravel 6.0
- graphql - graphql 输入不接受接口和联合的最佳解决方法
- linux - 编写bash脚本以在当前目录和子目录中顺序重命名文件
- javascript - 无法使用 React 捕获 Firestore 文档的字段
- c++ - 如何用逗号解析输入中的整数