python - 如何每行循环 Numpy Array
问题描述
我有两个 numpy 数组
X = np.array([[0,1,0,1,1],
[0,1,1,1,0]])
X2 = np.array([[0.2,0.5,0.1,0.5,0.5],
[0.3,0.6,0.6,0.6,0.4]])
我想要的是获得一个值为 X2 的新数组,其中 X 为 0,并对每行求和,所以我的输出应该是
[[0.3][0.7]]
我用了
X2[X==0]
这给了我整个数组中的所有 0,而不是每行,所以我得到了整个 0 数组的总和,而不是每行的总和。是否有切片功能或我可以用来获取行的总和的东西?
解决方案
您可以将X
其用作掩码,然后将该掩码与轴 1 相乘,X2
并与sum
轴 1相乘keepdims=True
:
>>> np.sum((X==0) * X2, axis=1, keepdims=True)
array([[0.3],
[0.7]])
推荐阅读
- python - grpc-Python max_workers 限制同时进程的数量
- c# - 反序列化对象
- amazon-web-services - 降低 AWS 中的数据传输成本
- php - 使用 Ajax 时如何访问购物车 id 的会话变量?如何设置属性?
- angular - 是否可以在从服务器获取之前过滤 api 数据?
- python-3.x - 如何使用 Matplotlib 更改我的代码以停止 DepreciatonWarning:使用或从“集合”导入 ABC
- lua - 如何修改由 C API 创建的元表?
- amazon-web-services - 禁用 AWS Api Gateway http --> https 307 重定向
- c# - 如何让 c# 从网站获取所有 URL 并将它们放入列表中
- php - 在单个函数中如何在 CodeIgniter 中执行两个重定向方法?