初始化一个array
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a)
输出:
[[1 2 3]
[4 5 6]]
按列求和
a.sum(axis=0)
输出:
array([5, 7, 9])
按行求和
a.sum(axis=1)
输出:
array([ 6, 15])
所有元素求和
a.sum()
输出:
21
对符合条件的元素进行求和
b = np.array([[1,2,3],[4,5,6],[7,8,100]])
b中有一个元素值远大于其它元素值,在实际应用中可能是个异常值,求和时如果我不想把这个异常值统计在内该怎么办?
方法是可以根据条件生成一个与b大小相同的布尔矩阵,然后用b乘以这个矩阵,因为True表现为1和False为0,所以不满足条件的元素就被置为了0,然再进行求和运算,就可以把异常值排队在外了。
c = b < 10
print(c)
输出:
[[ True True True]
[ True True True]
[ True True False]]
b*c
输出:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 0]])
可以看到100变成了0
(b*c).sum(axis=0)
输出:
array([12, 15, 9])
(b*c).sum(axis=1)
输出:
array([ 6, 15, 15])