03 numpy数学统计方法和axis的用法

一维数组

#沿轴向进行计算,一维数组只有一个0轴
import numpy as np
a = np.array([1,2,3,4,3,5,3,6])
print(f'数组:{a}')
print(np.sum(a))
print(np.prod(a))
print(np.cumsum(a)) # 从0开始元素的累积和
print(np.cumprod(a)) # 从1开始元素的累积积
print(np.max(a))
print(np.min(a))
print(np.argmax(a)) # 最大值所在的下标
print(np.argmin(a)) # 最小值所在的下标
print(np.mean(a)) # 平均数
print(np.median(a)) # 中位数
print(np.average(a)) # 加权平均
counts = np.bincount(a) # 统计非负整数的个数,不能统计浮点数
print(np.argmax(counts)) # 返回众数,此方法不能用于二维数组

#Numpy中没有直接的方法求众数,但是可以这样实现:
import numpy as np
# bincount():统计非负整数的个数,不能统计浮点数
counts = np.bincount(nums)
#返回众数
np.argmax(counts)

二维数组

import numpy as np
from scipy import stats
a = np.array([[1,3,6],[9,2,3],[2,3,3]])
print(f'数组:\n{a}')
print('-'*30)
print(np.sum(a))
print(np.prod(a))
print(np.cumsum(a)) # 从0开始元素的累积和,返回一维数组
print(np.cumprod(a)) # 从1开始元素的累积积,返回一维数组
print(np.max(a))
print(np.min(a))
print(np.argmax(a)) 
print(np.argmin(a)) 
print(np.mean(a)) 
print(np.median(a)) 
print(np.average(a))

在这里插入图片描述

axis的方法

axis=0代表行,axis=1代表列
所有的数学和统计函数都有这个参数,都可以使用

import numpy as np
a = np.array([[1,3,6],[9,3,2],[1,4,3]])
print(f'数组:\n{a}')
print('-'*30)
print(np.sum(a,axis=0)) # 每行中的每个对应元素相加,返回一维数组
print('-'*30)
print(np.sum(a,axis=1)) # 每列中的每个元素相加,返回一维数组

在这里插入图片描述

  • 其中思路正好是反的:axis=0 求每列的和。axis=1求每行的和。
    • 行:每行对应一个样本数据
    • 列:每列代表样本的一个特征
  • 数组对应到现实中的一种解释:
    • 行:每行对应一个样本数据
    • 列:每列代表样本的一个特征
  • 数据标准化
    • 对于机器学习、神经网络来说,不同列的量钢是相同的,收敛更快。
    • 有两个特征,一个是商品单价1元至50元,另一个是销售数量3千个至1万个,这两个数字不可比,所以需要都做标准化。
    • 比如在Excel里,单价一个列,销售数量一个列,不同列代表不同特征,所以用axis=0做计算
    • 标准化一般使用:通过均值和方差实现
      数组 = (数组 - mean(数组,axis=0))/ std(数组, axis=0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值