首页 > 其他 > 详细

数据分析之numpy模块

时间:2020-06-30 16:20:46      阅读:58      评论:0      收藏:0      [点我收藏+]

什么是数据分析

  • 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律
    • 使得数据的价值最大化
      • 分析用户的消费行为
        • 制定促销活动的方案
        • 制定促销时间和粒度
        • 计算用户的活跃度
        • 分析产品的回购力度
      • 分析广告点击率
        • 决定投放时间
        • 制定广告定向人群方案
        • 决定相关平台的投放
      • ......
  • 数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们做出判断,以便采取适当的行动
    • 保险公司从大量赔付申请数据中判断哪些为骗保的可能
    • 支付宝通过从大量的用户消费记录和行为自动调整花呗的额度
    • 短视频平台通过用户的点击和观看行为数据针对性的给用户推送喜欢的视频

数据分析实现流程

  • 提出问题
  • 准备数据
  • 分析数据
  • 获得结论
  • 成果可视化

数据分析三剑客

  • numpy
  • pandas(重点)
  • matplotlib

numpy模块

  • NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。

numpy的创建

  • 使用np.array()创建
  • 使用plt创建
  • 使用np的routines函数创建
import numpy as np 

# 使用array()创建一个一维数组
arr_1 = np.array([1,2,3])
arr_1
# 运行结果 array([1, 2, 3])

# 使用array()创建一个二维数组
np.array([[1,2,3],[4,5,6]])
# 运行结果 array([[1, 2, 3],[4, 5, 6]])
  • 数组和列表的区别是什么?
    • 数组中存储的数据元素类型必须是统一类型
    • 优先级:
      • 字符串 > 浮点型 > 整数
  • 将外部的一张图片读取加载到numpy数组中,然后尝试改变数组元素的数值查看对原始图片的影响
import matplotlib.pyplot as plt
bobo_arr = plt.imread(‘./bobo.jpg‘)
plt.imshow(bobo_arr)
# 运行结果是一张图片

plt.imshow(bobo_arr - 100)      
plt.imshow(bobo_arr[::-1])      # 将图片上下翻转
plt.imshow(bobo_arr[:,::-1,:])  # 将图片镜像
np.ones(shape=(3,4)) # shape是数组的维数或者矩形方阵
结果:
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])

np.linspace(1,100,num=20) # 等差数列 num元素的个数
np.arange(1,100,step=5) #等差数列 setp数值差
结果:
array([ 1,  6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81,
       86, 91, 96])

np.random.randint(0,100,size=(5,6))
# 随机生成一个五行六列的数组

numpy的常用属性

  • shape
  • ndim
  • size
  • dtype
bobo_arr.shape #返回数组的形状
bobo_arr.ndim #返回数组的维度
bobo_arr.size #返回数组元素的个数
bobo_arr.dtype #返回的是数组元素的数据类型

numpy的数据类型

  • array(dtype=?):可以设定数据类型
  • arr.dtype = ‘?‘:可以修改数据类型
    技术分享图片
arr = np.array([1,2,3],dtype="int64")
arr.dtype = ‘float32‘

numpy的索引和切片操作(重点)

  • 索引操作和列表同理
    技术分享图片
    技术分享图片

变形reshape

  • 注意:变形前和变形后数组元素的个数是不可以改变
arr原本是4列六行
arr.reshape((6,4)) # 变成六行四列
arr.reshape((2,-1)) #-1表示自动计算

级联操作

- 将多个numpy数组进行横向或者纵向的拼接
  • axis轴向的理解
    • 0:列
    • 1:行
  • 问题:
    • 级联的两个数组维度一样,但是行列个数不一样会如何?
arr
array([[ 2, 57, 40, 33, 96, 65],
       [69, 36, 33, 12, 64, 54],
       [12,  1, 10, 30, 51, 67],
       [26, 32, 10, 21, 84, 39]])

np.concatenate((arr,arr),axis=1) # 
array([[ 2, 57, 40, 33, 96, 65,  2, 57, 40, 33, 96, 65],
       [69, 36, 33, 12, 64, 54, 69, 36, 33, 12, 64, 54],
       [12,  1, 10, 30, 51, 67, 12,  1, 10, 30, 51, 67],
       [26, 32, 10, 21, 84, 39, 26, 32, 10, 21, 84, 39]])

常用的数学函数

  • NumPy 提供了标准的三角函数:sin()、cos()、tan()
  • numpy.around(a,decimals) 函数返回指定数字的四舍五入值。
    • 参数说明:
      • a: 数组
      • decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
        技术分享图片

常用的统计函数

  • numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
  • numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
  • numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
  • 标准差std():标准差是一组数据平均值分散程度的一种度量。
    • 公式:std = sqrt(mean((x - x.mean())**2))
    • 如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。
  • 方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
    技术分享图片

数据分析之numpy模块

原文:https://www.cnblogs.com/freedom0923/p/13214362.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!