[英]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.