【NumPy基础(05)常用函数】

一、计算函数

计算函数包括:
  1. max() ——最大值

  2. min()——最小值

  3. mean() ——平均值

  4. median() ——中位数

  5. std() ——标准差

  6. var()——方差

  7. sum() ——求和

  8. quantile() ——分位数

调用语法(基本类似):
# 维度分别代表2学校、3年级、4班级
my_matrix = np.random.randint(20,40,24).reshape(2,3,4)
my_matrix

>>>
array([[[38, 32, 21, 20],
        [22, 25, 21, 25],
        [21, 23, 38, 39]],

       [[38, 23, 29, 32],
        [36, 26, 39, 32],
        [34, 30, 28, 34]]])

my_matrix.sum()
>>>
706
部分维度计算方式:
# 把年级维度和班级维度聚合,只保留学校的
my_matrix.sum(axis=(1,2))
>>>
array([325, 381])
特殊调用median() 、quantile() :

NumPy的聚合函数里,median()quantile() 俩不能直接通过数组调用,而必须使用np.median()np.quantile() 来实现,并且后者具有参数q表述分位数。

np.quantile(my_matrix,axis=-1,q=0.5) # -1 表示倒数第一维
np.median(my_matrix,axis = -1)
>>>
# 因为中位数和0.5分位数一致,所以结果是相同的
array([[27. , 28. , 25.5],
       [26.5, 27.5, 31. ]])

array([[27. , 28. , 25.5],
       [26.5, 27.5, 31. ]])

缺失值处理方式:

如果数组具有缺失值,则对应维度也会被设为缺失值;如果想要忽略缺失值进行计算,可以用nan开头的聚合函数:

my_matrix = my_matrix.astype("float") # 更改数组类型,因为np.nan 是特殊的浮点类型
my_matrix[0][0][0] = np.nan # 赋值

my_matrix.max(axis=(1,2))
np.nanmax(my_matrix,axis=(1,2))
>>>
array([nan, 39.])
array([39., 39.])

相关性计算

这是以两个数组变量作为输入的函数,计算它们之间的相关性情况。

**** ——协方差计算

输出结果为一个协方差矩阵,**results[ i ][ j ]**表示第i个变量与第j个变量的协方差。

target1 = np.array([1,3,5,9])
target2 = np.array([1,5,3,-9])
np.cov(target1,target2)

>>>
array([[ 11.66666667, -16.66666667],
       [-16.66666667,  38.66666667]])

numpy的cov函数使用的三点:

  1. 变量矩阵的一行表示一个随机变量;

  2. bais参数控制计算时除以n-1还是n, True表示除以n,False表示除以n-1;

  3. 输出结果是一个协方差矩阵, results[i][j]表示第i个随机变量与第j个随机变量的协方差.

**** ——相关系数

相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数也可以看成协方差:一种剔除了两个变量量纲影响、标准化后的特殊协方差,它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。

np.corrcoef([target1,target2])

>>>
array([[ 1.        , -0.78470603],
       [-0.78470603,  1.        ]])

numpy的corrcoef函数使用的两点:

  1. 变量矩阵的一行表示一个随机变量;

  2. 输出结果是一个相关系数矩阵, results[i][j]表示第i个随机变量与第j个随机变量的相关系数.

二、逻辑函数

常见逻辑函数包含:

  1. 比较运算符,<、>、≤、≥、≠和==

  2. 内置函数,isnan()、isinf()、all()、any()

  3. 逻辑运算符,或运算符|、和运算符&以及非运算符~

salary = np.array([[9000,10000],[11000,12000]])
(salary>10000).all(axis=1)
(salary>10000).all(axis=1)
>>>
array([False,  True])
array([False,  True])

逻辑函数优先级:

  • 优先级从高到低:not(“~”)、and(“&”)、or(“|”)
a = np.array([True])
b = np.array([False])

~a | a 
~b & b 
a | b & b 

>>>
array([True])# 说明not优先级高于or
array([False])# 说明not优先级高于and
array([True])# 说明and优先级高于or

逻辑函数可以被广播:

a = np.array([True, False])
b = np.array([True, False])
a | b[:, None] # 广播

>>>
array([[ True,  True],
       [ True, False]])

三、索引函数

常见索引函数包含:

  1. ****** ——返回非零数的索引**

  2. ****** ——返回最大数的索引**

  3. ****** ——返回最小数的索引**

a = np.array([0,-5,0,1,3,-1])
np.nonzero(a)
a.argmax()
a.argmin()

>>>
(array([1, 3, 4, 5], dtype=int64),)
4
1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eason DayDayUp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值