python – 如何在numpy中进行条件行求和?

weixin_38048698 2019-09-12 11:55:37
我有一个numpy 2d数组,包括正条目和-1值,这些是缺少的值.我想在不包含-1值的情况下对此矩阵的行求和.有没有办法在numpy中执行条件行求和?
...全文
959 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38051062 2019-09-12
  • 打赏
  • 举报
回复
方法#1:乘以布尔数组,因为True表现为1而False表示为0: >>> a array([[ 1, 3, 0, 4, 2], [ 2, 1, 4, -1, 1], [-1, 2, 4, 4, 4], [ 4, 4, 4, 4, 0], [ 0, 2, 4, 1, 2]]) >>> (a * (a != -1)).sum(axis=1) array([10, 8, 14, 16, 9]) 方法#2:使用相同的布尔数组(好吧,翻转 – 在我们想知道要保留哪些之前,现在忽略哪些)作为MaskedArray的正式掩码. >>> am = np.ma.MaskedArray(a, mask=(a==-1)) >>> am masked_array(data = [[1 3 0 4 2] [2 1 4 -- 1] [-- 2 4 4 4] [4 4 4 4 0] [0 2 4 1 2]], mask = [[False False False False False] [False False False True False] [ True False False False False] [False False False False False] [False False False False False]], fill_value = 999999) >>> am.sum(axis=1) masked_array(data = [10 8 14 16 9], mask = [False False False False False], fill_value = 999999) [说实话,我几乎从不使用MaskedArray.]

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧