NumPy实现数据的聚合,计算最大值,最小值和其他值

1.数组值的求和

首先构造一个具有100个值的数组,然后我们利用两个不同的方法进行求和:

>>> l=np.random.random(100)

l的数据如下:

>>> l
array([0.63330856, 0.55254815, 0.681117  , 0.0392779 , 0.55515459,
       0.65577685, 0.93779694, 0.38145863, 0.15571406, 0.58656667,
       0.05014379, 0.22707423, 0.2206218 , 0.99183227, 0.067189  ,
       0.85587266, 0.38610259, 0.58482566, 0.21639326, 0.66505995,
       0.47360391, 0.553394  , 0.6861513 , 0.36460573, 0.25960476,
       0.80718606, 0.61228608, 0.47824396, 0.98466131, 0.13550462,
       0.2296882 , 0.41334125, 0.0028512 , 0.00706611, 0.66774287,
       0.26150011, 0.98494222, 0.16255418, 0.55893817, 0.63001863,
       0.0151125 , 0.13388626, 0.3116983 , 0.70979666, 0.36033375,
       0.70286921, 0.08094839, 0.38973694, 0.07205708, 0.23503885,
       0.56665754, 0.72277441, 0.00386346, 0.86161187, 0.09270819,
       0.36279124, 0.14414812, 0.83186456, 0.759372  , 0.26563921,
       0.5059324 , 0.35014357, 0.55575501, 0.5613696 , 0.00100515,
       0.40608559, 0.89754344, 0.13651899, 0.334764  , 0.77378823,
       0.69603667, 0.65702436, 0.98306105, 0.93510312, 0.71863035,
       0.14813637, 0.92719219, 0.3230562 , 0.36282925, 0.26928228,
       0.70444039, 0.03080534, 0.21334398, 0.14623021, 0.85840572,
       0.51886698, 0.40347232, 0.84893857, 0.17807356, 0.02207469,
       0.05365235, 0.47315195, 0.48036338, 0.54677648, 0.73090216,
       0.20840042, 0.0531166 , 0.59713323, 0.76020517, 0.50951197])

利用np里面的sum函数明显求和会更快,但是直接利用python当中的函数则会比较慢,这也是有科学依据的,但是我们只要记住即可,感兴趣的同学可以利用%timeit 来求出两个不同函数进行计算的时间:
计算结果如下:

>>> sum(l)
45.22175110164667
>>> np.sum(l)
45.221751101646674

2.求解最大最小值

>>> np.min(l)
0.0010051507515725921
>>> np.max(l)
0.9918322686313938

3.多维度聚合

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
result = np.sum(arr)
print(result)

原文地址:https://www.cnblogs.com/geeksongs/p/11015928.html

时间: 2024-10-31 20:01:12

NumPy实现数据的聚合,计算最大值,最小值和其他值的相关文章

php三目运算计算三个数最大值最小值

文章地址:https://www.cnblogs.com/sandraryan/ $x = 10; $y = 45; $z = 3; //求出三个数字中最大值最小值 //先比较x y,如果x> y ,判断x 和z,从x z 中判断最大值赋给max //如果x < y ,判断 y 和z ,从y z中判断最大值 $max = $x > $y ? ($x > $z ? $x :$z) : ($y > $z ? $y : $z); $min = $x < $y ? ($x &l

计算数组中最大值和最小值的差值

算法一 <?php /** * 获取数组中最大值和最小值的差值 */ function getDiffVal($arr) { $max = 0; $min = 0; foreach($arr as $k=>$v) { // 赋初值 if ($k == 0) { $max = $min = $v; } // 获取最大值 if ($v > $max) { $max = $v; } // 获取最小值 if ($v < $min) { $min = $v; } } $diff = $max

Python/Numpy大数据编程经验

Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点. 2. 及时用 del 释放大块内存.Python缺省是在变量范围(variablescope)之外才释放一个变量,哪怕这个变量在后面的代码没有再被用到,所以需要手动释放大的array. 注意所有对数组的引用都del之后,数组才会被del.这些引用包括A[2:]这样的view,即使np.split也只是

锋利的SQL2014:基于窗口的聚合计算

实际上,窗口聚合与分组聚合在功能上是相同的,唯一的差别是,分组聚合是通过GROUP BY进行分组计算,而窗口聚合是通过OVER子句定义的窗口进行计算.前面我们讲了,这个所谓的窗口,实际上也是一组数据. SQL Server提供的聚合函数包括:AVG.CHECKSUM_AGG.COUNT.COUNT_BIG.GROUPING.GROUPING_ID.MAX.MIN.SUM.STDEV.STDEVP.VAR.VARP.除了GROUPING和GROUPING_ID,都可以跟在OVER子句后面用于窗口的

Tunnel Warfare (区间合并&amp;最大值最小值巧妙方法)

Tunnel Warfare http://acm.hdu.edu.cn/showproblem.php?pid=1540 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13440    Accepted Submission(s): 5333 Problem Description During the War of Resistan

mssql sqlserver 对不同群组对象进行聚合计算的方法分享

摘要: 下文讲述通过一条sql语句,采用over关键字同时对不同类型进行分组的方法,如下所示: 实验环境:sql server 2008 R2 当有一张明细表,我们需同时按照不同的规则,计算平均.计数.求和等聚合计算时,此时我们可以使用over子句对数据进行操作.例: 我们需获取一个学生成绩的 总平均分 各科平均分 学生单科成绩同平均分的差异,此时我们可以多次使用over子句,得出我们想要的结果, select [课程名], [姓名], [成绩], AVG([成绩]) over () as [总

11.2.2 例题 11-2 UVA 1395 Slim Span (最大值-最小值尽可能小的生成树)

题目大意: 给你n个点(n<=100),然后,让你找到一棵生成树,使得 最大值-最小值的边权尽可能的小的生成树. 解题思路: 还是按照最小生成树的思路,一开始对所有的边按照权值大小,从小到大排序.然后,对于一个区间[L,R],我们每次枚举的时候,如果这个[L,R]使得所有的n个点都联通了,那么定义他们的苗条度为: 最大值-最小值.这个苗条度肯定是<=cost[r]-cost[l].那么,我们就依次枚举这个l,每次都以[l,m]区间内的边建立最小生成树, 如果不能满足n个点的联通,那么就返回-1

Java 数组工具类排序,最大值最小值等

public class ArrayUtils{ /** * 返回数组最大值 * * @param a * @return */ public static int max(int[] a){ // 返回数组最大值 int x; int aa[]=new int[a.length]; System.arraycopy(a,0,aa,0,a.length); x=aa[0]; for(int i=1;i<aa.length;i++){ if(aa[i]>x){ x=aa[i]; } } retu

numpy和matlab计算协方差矩阵的不同(matlab是标准的,numpy相当于转置后计算)

matlab是标准的,numpy相当于转置后计算 >> x = [2,0,-1.4;2.2,0.2,-1.5;2.4,0.1,-1;1.9,0,-1.2] x = 2.0000    0            -1.4000 2.2000    0.2000    -1.5000 2.4000    0.1000    -1.0000 1.9000    0            -1.2000 >> cov(x) ans = 0.0492        0.0142      0