繁体   English   中英

布尔数组中的索引的Numpy求和

[英]Numpy Summation for Index in Boolean Array

在Numpy中,我有一个矩阵长度相等的布尔数组。 我想对与布尔数组相对应的矩阵元素进行计算。 我该怎么做呢?

a: [true, false, true]
b: [[1,1,1],[2,2,2],[3,3,3]]

说函数是对子数组的元素求和

索引0为True :因此我将3加到总和(从零开始)

索引1为False :因此求和仍为3

索引2为True :因此我将9加到总计12中

我该怎么做(布尔和求和部分;我不需要如何将每个子数组相加)?

您可以简单地使用布尔数组a来索引b的行,然后取所得的(2, 3)数组的总和:

import numpy as np

a = np.array([True, False, True])
b = np.array([[1,1,1],[2,2,2],[3,3,3]])

# index rows of b where a is True (i.e. the first and third row of b)
print(b[a])
# [[1 1 1]
#  [3 3 3]]

# take the sum over all elements in these rows
print(b[a].sum())
# 12

听起来您将从阅读有关数组索引的numpy文档中受益。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM