前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Numpy中的数学和统计方法

Numpy中的数学和统计方法

作者头像
触摸壹缕阳光
发布2020-07-02 15:35:27
8070
发布2020-07-02 15:35:27
举报

使用一组数学函数对Numpy数组进行操作有两种计算方式:

  • 对整个数组进行计算;
  • 对源数组的某个轴的数据进行计算;

基本数组统计方法

▲数组统计方法

统计函数的分类

下面的所有统计方法,即可以当做数组的实例方法调用,也可以当做Numpy函数来调用。

▲统计函数

代码语言:javascript
复制
import numpy as np

arr = np.random.randn(5,4)
print(np.xxx(arr))
print(arr.xxx())

聚合计算(aggregation,通常叫做约简(reduction))。非聚合计算就是方法调用返回的结果是一个由中间结果组成的数组。

▲聚合计算的方法

代码语言:javascript
复制
import numpy as np

arr = np.random.randn(5,4)#正太分布数据
print("数组中元素求和:",arr.sum())
print("算术平均数:",arr.mean())
print("标准差和方差:",arr.std(),arr.var())
print("最大值和最小值:",arr.max(),arr.min())

数组中元素求和: -2.84952437344
算术平均数: -0.142476218672
标准差和方差: 0.896244709803 0.803254579849
最大值和最小值: 1.95081773969 -1.87576739314

而cumsum以及cumprod方法就是非聚合方法,它们返回的是由中间结果组成的一个数组,这样说有点不好理解,下面我使用小例子来具体的说明。

依然是以最简单的二维数组为例进行说明:

代码语言:javascript
复制
import numpy as np

arr = np.arange(12).reshape(3,4)
print(arr)

print('-----axis = 0-----')
arr_axi0 = np.cumsum(arr,axis = 0)
print(arr_axi0)

print('-----axis = 1-----')
arr_axi1 = np.cumsum(arr,axis = 1)
print(arr_axi1)

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
-----axis = 0-----
[[ 0  1  2  3]
 [ 4  6  8 10]
 [12 15 18 21]]
-----axis = 1-----
[[ 0  1  3  6]
 [ 4  9 15 22]
 [ 8 17 27 38]]

Numpy中二维数组的axis的值与行和列之间的关系如下图所示。

▲二维数组的axis

由此我们也可以看出对于二维数组参数axis的值只能是0或1,那么如何去理解非聚合计算的结果由中间值组成的数组呢?

  • axis = 0的时候,知道它是从行的角度去考虑函数,那如果是一般的聚合计算的函数,如sum...它们返回的是一个向量,但是对于非聚合计算的函数,它们返回的数组的形状与原来数组的形状相同,它们每一行的值都是上一行值与本行值的和(如果使用cumprop方法的话就是上一行值与本行值的积);
  • axis = 1的时候,其实和axis = 0的一样,只不过此时从列的方向去考虑,返回数组的形状和原来数组的形状依然相同,但是其中每一列的值就是本列与上一列的值组成的新列(如果使用cumprop方法的话就是上一行值与本行值的积);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档