numpy 学习笔记(三)

本文详细介绍了如何使用NumPy库中的函数对ndarray进行各种聚合操作,如求和、最大值、最小值、平均值、乘积、百分位数、索引查找以及处理缺失值(NaN)的特定函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ndarray的聚合操作

1. 求和np.sum

n = np.random.randint(0, 10, size=(4, 5))
n
"""
    array([[2, 6, 7, 9, 4],
           [8, 2, 4, 8, 8],
           [2, 6, 0, 9, 8],
           [9, 0, 2, 9, 2]])
"""
# 累加, 如果不指定轴(axis), 在numpy中会默认把所有维度数据聚合累加
np.sum(n) # 105
n.sum() # 105; 与np.sum(n)一样
# 指定维度聚合, axis=0对行聚合, 相当于求了每一列的和. 
np.sum(n, axis=0) #  array([21, 14, 13, 35, 22])
n.sum(axis=0) #  array([21, 14, 13, 35, 22])
# axis=1对列聚合, 相当于求了每一行的和. 
np.sum(n, axis=1) #  array([28, 30, 25, 22])

2. 最大最小值:np.max/ np.min

np.max(n) # 9;求n中最大值
n.max() # 9
n.min() # 0; 求最小值
n = np.random.randint(0, 10, size=5)
n # array([2, 9, 9, 7, 5])
# product 乘积, 连乘  2 * 9 * 9 * 7 * 5
np.prod(n)  5670
# average 平均值
np.mean(n) # 6.4

3. 其他聚合操作

n # array([2, 9, 9, 7, 5])
# 幂运算 对每个元素进行平方
np.power(n, 2) # array([ 4, 81, 81, 49, 25], dtype=int32)
np.any 与 np.all

np.any N/A Evaluate whether any elements are true
np.all N/A Evaluate whether all elements are true
0, (), [], {}, ‘’, None, 在python中都认为是False

# any; ndarray中任意一个元素是True, 那么就返回True
n = np.array([1, 2, 3, 0])
n.any()# True
any(n) # True; 与n.any()等效
# all; ndarray中所有元素是True, 返回True, 否则返回False
n.all() # False
all(n) # False
np.percentile 求百分位数
# 计算从 0 到 99 的整数的四个百分位数的值:第 25%,第 50%(中位数),第 75% 和第 100% 百分位数。
np.percentile(np.arange(100), [25, 50, 75, 100]) #  array([24.75, 49.5 , 74.25, 99.  ])
np.argmin, np.argmax 求最大值或最小值的索引.
n = np.random.randint(0, 10, size=(4, 6))
n
"""
    array([[3, 5, 1, 6, 4, 7],
           [8, 3, 0, 5, 2, 3],
           [5, 0, 3, 5, 8, 8],
           [6, 4, 0, 4, 4, 5]])
"""
# 求narray 每列最小值的索引
np.argmin(n, axis=0) # array([0, 2, 1, 3, 1, 1], dtype=int64)

# 求narray 每行最大值的索引
np.argmax(n, axis=1) # array([5, 0, 4, 0], dtype=int64)
np.median 求中位数
 np.median([1, 2, 3, 4, 5]) # 3.0
np.nansum 和 np.sum 的区别

消除nan的影响, 就用np.nan<聚合函数>

# nan是numpy中是特殊的东西. 表示不是一个数字, not a number, 取首字母. 但是又不是python中的None
# numpy中的nan是float类型, 
type(np.nan) # float

# numpy中的nan有个特点: 任何数字和np.nan进行计算的时候, 返回的都是np.nan
1 + np.nan # nan
# 如果说你的ndarray中出现了nan的情况, 那么进行聚合运算的时候, 无论怎么算, 结果都会是nan
n = np.array([1, 2, 3, np.nan])
n.sum() # nan;  1 + 2 + 3 + np.nan
np.nansum(n) # 6.0
np.var 与 np.std

np.std 计算数组元素标准差。标准差是方差的平方根,用于衡量数据的离散程度或波动性。标准差越大,表示数据的波动性越高 。
np.var 计算数组元素的方差。方差是衡量数据分散程度的统计量。

n = np.array([1, 2, 3, 4, 5])
np.var(n) # 2.0
np.std(n) # 1.4142135623730951
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值