Python3中SUM的用法

本文详细介绍了Python内置sum函数及NumPy库中的sum函数的使用方法,包括对列表、元组、集合等不同数据类型的支持,以及NumPy中沿特定轴进行求和的操作。

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

对象是列表,元组,集合
内置sum

>>>sum([1,2,3],2)
8     //元素相加之后再加2
>>>sum((1,2,3))
6
>>>sum({1,2,3})
6
>>>sum(range(5))
10

numpy中sum

import numpy as np
>>>np.sum([[1,2,3], [4,5,6]])
21   //两个列表的元素相加
>>>np.sum([[1,2,3],[4,5,6]], axis=0)
[5, 7, 9]   //对应位置相加
>>>np.sum([[1,2,3],[4,5,6]], axis=1)
[6, 15]    //两个列表分别加和

<think>嗯,用户想了解如何在Python中使用numpy的ndarray的sum函数。首先,我需要回忆一下numpy的sum函数的基本用法,可能还要参考提供的引用资料。 根据引用[1],numpy的sum函数有两种情况:一种是Python自带的sum,处理可迭代对象;另一种是numpy的sum,可以指定维度。用户问的是ndarray的sum,所以应该重点讲numpy的版本。 引用[2]给出了函数签名sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)。需要解释这些参数的作用,特别是axis,因为用户可能对axis的理解有困惑。例如,axis=0是按列相加,axis=1是按行相加,这些在引用[3]和[4]中都有例子说明。 用户可能需要具体的示例来理解不同axis参数的效果。比如,二维数组的例子,当axis=0时,结果会减少一个维度,变成行向量;axis=1时,结果变成列向量。同时,keepdims参数可以保持维度,这在后续处理中可能有帮助。 另外,引用[3]提到axis=-1的情况,这指的是最后一个维度,对于二维数组来说,和axis=1一样。这也是需要注意的地方,避免用户混淆。 还要提醒用户注意默认情况下的行为,即axis=None会计算所有元素的和。数据类型转换的问题,比如dtype参数的使用,以及性能方面的考虑,比如使用NumPy函数代替循环的效率优势。 可能需要总结不同参数组合的效果,并给出常见的使用场景,比如数据汇总、降维处理等。最后,生成相关问题帮助用户进一步学习,比如如何在不同维度求和,或者如何处理高维数组等。</think>### Python中numpy.ndarray的sum函数用法详解 #### 一、基本语法与参数说明 numpy的sum函数语法为: ```python numpy.sum(arr, axis=None, dtype=None, keepdims=False) ``` - **arr**:输入数组 - **axis**:求和的维度(默认对所有元素求和) - **dtype**:指定计算结果的数据类型 - **keepdims**:是否保持原数组维度(默认False)[^2][^3] --- #### 二、核心操作演示(二维数组为例) 假设有如下数组: ```python import numpy as np arr = np.array([[1,2,3], [4,5,6]]) ``` 1. **全量求和** ```python print(np.sum(arr)) # 输出21(1+2+3+4+5+6) ``` 2. **按列求和(axis=0)** ```python print(np.sum(arr, axis=0)) # 输出[5 7 9] ``` 对应列相加:$1+4=5$, $2+5=7$, $3+6=9$[^4] 3. **按行求和(axis=1)** ```python print(np.sum(arr, axis=1)) # 输出[6 15] ``` 对应行相加:$1+2+3=6$, $4+5+6=15$ 4. **保持维度(keepdims=True)** ```python print(np.sum(arr, axis=0, keepdims=True)) # 输出[[5 7 9]] ``` --- #### 三、高维数组处理 三维数组示例: ```python arr_3d = np.arange(24).reshape(2,3,4) # axis=0: 沿深度方向求和(2层变1层) # axis=1: 按行方向压缩(3行变1行) # axis=2: 按列方向压缩(4列变1列) ``` --- #### 四、关键注意点 1. **axis负数索引**:`axis=-1`表示最后一个维度,等价于`axis=2`(三维数组) 2. **数据类型控制**:通过`dtype=np.float32`可避免整数溢出 3. **性能优化**:比Python原生循环快100倍以上(百万级数据) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值