python - 如何在没有for循环的情况下计算numpy数组
问题描述
我有两个形状A = (226, 250)
和B = (195, 195, 250)
. 我想计算一个新数组C
:
for i in range(A.shape[0]):
C = A[i, :].reshape(1, 1, -1) - B
是否有另一种无需迭代过程即可计算 C 的方法?
解决方案
看来你想要
C = A[:, None, None, :] - B
None
是 的别名np.newaxis
。它会在您将其放置在索引中的位置插入一个新轴。就像
C = A.reshape(A.shape[0], 1, 1, A.shape[1])
推荐阅读
- elasticsearch - 是否可以为同一个 S3 存储桶注册多个 Elasticsearch 快照存储库?
- typescript - 如何在 try-catch 块中键入 Firebase JS SDK 错误?
- javascript - 弹出窗口中的样式文本
- c# - 三元运算符中的 C# 逗号用法
- c# - 如何优化此代码并每 40ms 调用一次 Api
- jquery - Jquery Calculator 不断返回 NaN
- firebase - Firebase_auth photoURL 不起作用。返回默认人物图像
- java - UI 中未显示 Keyclock 自定义所需操作
- angular - 通过 Angular 将文件上传到响应式表单
- javascript - 为什么我的数据没有在 React(NextJS) 中呈现