15 统计计算

0 阅读3分钟

numpy.sum

用于计算数组元素的总和

image.png

axis表示维度,0第一维度(列),1 第二维度(行)

import numpy as np

a = np.array([[1, 2], 
              [3, 4], 
              [5, 6]])

# 加总和
print("加总和",a.sum())
# 加总和 列
print("按列加",a.sum(axis=0))
# 加总和 行
print("按行加",a.sum(axis=1))

numpy.minnumpy.max

分别用于计算数组元素的最小值和最大值

import numpy as np

a = np.array([[1,2],
              [5, 3],
              [4, 6]])

# 求所有元素中最大的元素
print("最大元素",a.max())
# 按列找出元素中的最大的元素
print("按列 最大元素",a.max(axis=0))
# 按行找出元素中的最大的元素
print("按行 最大元素",a.max(axis=1))

# 求所有元素中最小的的元素
print("最大元素",a.min())
# 按列找出元素中的最小的元素
print("按列 最小元素",a.min(axis=0))
# 按行找出元素中的最小的元素
print("按行 最小元素",a.min(axis=1))

逐值累加

在 NumPy 中,逐元累加通常指的是对数组的元素依次进行累加操作,得到一个新的数组,其中每个元素都是原数组从开始到该位置元素的累积和。可以使用 numpy.cumsum() 函数来实现这一功能。

函数介绍

numpy.cumsum() 函数用于返回给定数组沿指定轴的累积和。其基本语法如下

numpy.cumsum(a, axis=None, dtype=None, out=None)
    • a:输入的数组。
    • axis:可选参数,指定计算累积和的轴。如果 axis=None(默认值),则将数组扁平化后计算累积和;如果 axis=0,则沿列方向计算累积和;如果 axis=1,则沿行方向计算累积和。
    • dtype:可选参数,指定输出数组的数据类型。
    • out:可选参数,用于存储结果的数组。

不指定axis

image.png

扁平化后的一维数组为 [1, 2, 5, 3, 4, 6]。累积和的计算过程如下:

  • 第一个元素的累积和就是它本身,即 1
  • 第二个元素的累积和是前两个元素的和,即 1 + 2 = 3
  • 第三个元素的累积和是前三个元素的和,即 1 + 2 + 5 = 8
  • 第四个元素的累积和是前四个元素的和,即 1 + 2 + 5 + 3 = 11
  • 第五个元素的累积和是前五个元素的和,即 1 + 2 + 5 + 3 + 4 = 15
  • 第六个元素的累积和是所有元素的和,即 1 + 2 + 5 + 3 + 4 + 6 = 21

指定axis

image.png

import numpy as np

a = np.array([[1,2], [5, 3],[4, 6]])


# 指定axis=0
print(a.cumsum(axis=0))

# 指定axis=1
print(a.cumsum(axis=1))

按行逐值累加的计算过程

对数组 a 进行逐值累加,也就是对每一行的元素依次累加。下面是具体的计算步骤:

第一行 [1, 2]

  • 第一个元素的累加和就是它本身,即 1
  • 第二个元素的累加和是当前元素与前面元素的和,也就是 1 + 2 = 3
    所以第一行累加后的结果是 [1, 3]

第二行 [5, 3]

  • 第一个元素的累加和为 5
  • 第二个元素的累加和是 5 + 3 = 8
    所以第二行累加后的结果是 [5, 8]

第三行 [4, 6]

  • 第一个元素的累加和是 4
  • 第二个元素的累加和是 4 + 6 = 10
    所以第三行累加后的结果是 [4, 10]