重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
有些Python小白对numpy中的常见函数不太了解,今天小编就整理出来分享给大家。
成都创新互联公司服务项目包括平鲁网站建设、平鲁网站制作、平鲁网页制作以及平鲁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平鲁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平鲁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。
数组常用函数
1.where()按条件返回数组的索引值
2.take(a,index)从数组a中按照索引index取值
3.linspace(a,b,N)返回一个在(a,b)范围内均匀分布的数组,元素个数为N个
4.a.fill()将数组的所有元素以指定的值填充
5.diff(a)返回数组a相邻元素的差值构成的数组
6.sign(a)返回数组a的每个元素的正负符号
7.piecewise(a,[condlist],[funclist])数组a根据布尔型条件condlist返回对应元素结果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改变数组维度
a.ravel(),a.flatten():将数组a展平成一维数组
a.shape=(m,n),a.reshape(m,n):将数组a转换成m*n维数组
a.transpose,a.T转置数组a
数组组合
1.hstack((a,b)),concatenate((a,b),axis=1)将数组a,b沿水平方向组合
2.vstack((a,b)),concatenate((a,b),axis=0)将数组a,b沿竖直方向组合
3.row_stack((a,b))将数组a,b按行方向组合
4.column_stack((a,b))将数组a,b按列方向组合
数组分割
1.split(a,n,axis=0),vsplit(a,n)将数组a沿垂直方向分割成n个数组
2.split(a,n,axis=1),hsplit(a,n)将数组a沿水平方向分割成n个数组
数组修剪和压缩
1.a.clip(m,n)设置数组a的范围为(m,n),数组中大于n的元素设定为n,小于m的元素设定为m
2.a.compress()返回根据给定条件筛选后的数组
数组属性
1.a.dtype数组a的数据类型
2.a.shape数组a的维度
3.a.ndim数组a的维数
4.a.size数组a所含元素的总个数
5.a.itemsize数组a的元素在内存中所占的字节数
6.a.nbytes整个数组a所占的内存空间7.a.astype(int)转换a数组的类型为int型
数组计算
1.average(a,weights=v)对数组a以权重v进行加权平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)数组a的均值、最大值、最小值、中位数、方差、标准差
3.a.prod()数组a的所有元素的乘积
4.a.cumprod()数组a的元素的累积乘积
5.cov(a,b),corrcoef(a,b)数组a和b的协方差、相关系数
6.a.diagonal()查看矩阵a对角线上的元素7.a.trace()计算矩阵a的迹,即对角线元素之和
以上就是numpy中的常见函数。更多Python学习推荐:PyThon学习网教学中心。
我没有理解错的话,你应该说的是numpy.prod()这个函数吧,这个函数是连乘操作,将里面所有的元素相乘。\x0d\x0a比如:a = numpy.array([1,2,3,4])\x0d\x0a那么:numpy.prod(a) = 24\x0d\x0a还有:numpy.prod(a[2:3]) = 3#所有的区间都是左闭右开的,所以只有3了\x0d\x0a同理:numpy.prod(a[1:3]) = 6。\x0d\x0a有这三个例子,就应该可以对这个函数有个大概的理解了。
前言分组原理
核心:
1.不论分组键是数组、列表、字典、Series、函数,只要其与待分组变量的轴长度一致都可以传入groupby进行分组。
2.默认axis=0按行分组,可指定axis=1对列分组。
对数据进行分组操作的过程可以概括为:split-apply-combine三步:
1.按照键值(key)或者分组变量将数据分组。
2.对于每组应用我们的函数,这一步非常灵活,可以是python自带函数,可以是我们自己编写的函数。
3.将函数计算后的结果聚合。
1 分组模式及其对象
1.1 分组的一般模式
三个要素:分组依据、数据来源、操作及其返回结果
df.groupby(分组依据)[数据来源].使用操作
1.2 分组依据的本质
1.3Groupby 对象
通过 ngroups 属性,可以访问分为了多少组:
通过 groups 属性,可以返回从 组名映射到 组索引列表的字典:
当 size 作为 DataFrame 的属性时,返回的是表长乘以表宽的大小,但在 groupby 对象上表示统计每个组的 元素个数:
通过 get_group 方法可以直接获取所在组对应的行,此时必须知道组的具体名字:
1.4 分组的三大操作
分组的三大操作:聚合、变换和过滤
2.聚合函数
2.1内置聚合函数
包括如下函数: max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod
2.2agg 方法
【a】使用多个函数
当使用多个聚合函数时,需要用列表的形式把内置聚合函数的对应的字符串传入,先前提到的所有字符串都是合法的。
【b】对特定的列使用特定的聚合函数
对于方法和列的特殊对应,可以通过构造字典传入 agg 中实现,其中字典以列名为键,以聚合字符串或字符串列表为值。
【c】使用自定义函数
在 agg 中可以使用具体的自定义函数,需要注意传入函数的参数是之前数据源中的列,逐列进行计算
【d】聚合结果重命名 如果想要对结果进行重命名,只需要将上述函数的位置改写成元组,元组的第一个元素为新的名字,第二个位置为原来的函数,包括聚合字符串和自定义函数
3 变换和过滤
3.1 变换函数与 transform 方法
变 换 函 数 的 返 回 值 为 同 长 度 的 序 列, 最 常 用 的 内 置 变 换 函 数 是 累 计 函 数:cum- count/cumsum/cumprod/cummax/cummin ,它们的使用方式和聚合函数类似,只不过完成的是组内 累计操作。
3.2 组索引与过滤
过滤在分组中是对于组的过滤,而索引是对于行的过滤
组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回 True 则会被保留,False 则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为 DataFrame 返回。
在 groupby 对象中,定义了 filter 方法进行组的筛选,其中自定义函数的输入参数为数据源构成的 DataFrame 本身,在之前例子中定义的 groupby 对象中,传入的就是 df[['Height', 'Weight']] ,因此所有表方法和属性 都可以在自定义函数中相应地使用,同时只需保证自定义函数的返回为布尔值即可。
4 跨列分组
4.1 apply 的引入
4.2 apply 的使用
在设计上,apply 的自定义函数传入参数与 filter 完全一致,只不过后者只允许返回布尔值
【a】标量情况:结果得到的是 Series ,索引与 agg 的结果一致
【b】Series 情况:得到的是 DataFrame ,行索引与标量情况一致,列索引为 Series 的索引
【c】DataFrame 情况:得到的是 DataFrame ,行索引最内层在每个组原先 agg 的结果索引上,再加一层返 回的 DataFrame 行索引,同时分组结果 DataFrame 的列索引和返回的 DataFrame 列索引一致
我没有理解错的话,你应该说的是numpy.prod()这个函数吧,这个函数是连乘操作,将里面所有的元素相乘。
比如:a = numpy.array([1,2,3,4])
那么:numpy.prod(a) = 24
还有:numpy.prod(a[2:3]) = 3#所有的区间都是左闭右开的,所以只有3了
同理:numpy.prod(a[1:3]) = 6。
有这三个例子,就应该可以对这个函数有个大概的理解了。