zoukankan      html  css  js  c++  java
  • 数据分析1-1

    1.

    (1)数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律
    (2)数据分析三剑客:Numpy,Pandas,Matplotlib
    (3)NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算
      提供大量的数学函数库

    numpy中seriel,dataframe重点
    matplotlib:直方图和散点图等等其他图
    前两个是数据分析相关的,后边的这个是绘图相关的

    一、创建ndarray

    2. 使用np.array()创建

    例1:一维数组创建

    import numpy as np
    np.array([1,2,3,4,5])

    结果:

    array([1, 2, 3, 4, 5])

    例2:二维数据创建

    np.array([[1,2,3.2],[4,5,6]])

    结果:

    array([[ 1. ,  2. ,  3.2],
           [ 4. ,  5. ,  6. ]])
    注意:
    numpy默认ndarray的所有元素的类型是相同的
    如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

     例3:使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片

    import matplotlib.pyplot as plt
    plt.imread('./cat.jpg')

    运行之后,返回的是一个三维数组,外边有三层包裹

    结果:

    例4:

    import matplotlib.pyplot as plt
    #cat_img_arr = plt.imread('./cat.jpg')
    cat_img_arr = plt.imread('cat.jpg')
    plt.imshow(cat_img_arr)

    运行之后,得到的结果:

    例5:

    import matplotlib.pyplot as plt
    #cat_img_arr = plt.imread('./cat.jpg')
    cat_img_arr = plt.imread('cat.jpg')
    plt.imshow(cat_img_arr)
    plt.imshow(cat_img_arr-50)

    运行之后,得到下面的结果:减去50之后的结果

    例6:

    import matplotlib.pyplot as plt
    #cat_img_arr = plt.imread('./cat.jpg')
    cat_img_arr = plt.imread('cat.jpg')
    plt.imshow(cat_img_arr)
    plt.imshow(cat_img_arr-50)
    cat_img_arr

    运行结果:

    打印出了这个数组

    例7:

    import matplotlib.pyplot as plt
    #cat_img_arr = plt.imread('./cat.jpg')
    cat_img_arr = plt.imread('cat.jpg')
    plt.imshow(cat_img_arr)
    plt.imshow(cat_img_arr-50)
    cat_img_arr.shape        #数组的形状应该得到的是下面的数组(456,730,3)

    展示元组:也就是数组的形状

    前两个表示像素,第三个表示颜色

    结果:

    2. 使用np的routines函数创建

    (1)包含以下常见创建方法: 

    例1:

    例2:

    例3:等差数列

    用法:

    np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

    返回20个元素:

    例4:

    例5:

    固定随机数,5行6列,随机因子

    #固定时间种子,产生的随机数就固定下来了

     

    例6:标准正态分布

    例7:生成0-1的随机数

    三.ndarray的属性

    例1:

    得到下面的结果:

    核心重点:索引和切片的处理

     123

     四.ndarray的基本操作

    1. 索引¶
    一维与列表完全一致 多维时同理

    例1:索引查找结果,修改结果

    例2:索引:一维与列表完全一致 多维时同理

    (1)获取二维数组前两行,顾头不顾尾

    (2)获取二维数组前两列数据,逗号左边是行数据,逗号右边是列数据

    (3)获取数据前两行和前两列数据

    (4)将数据反转,例如[1,2,3]==>[3,2,1]

     ::进行切片

    (5)列倒序

    (6)全部倒序

    arr[::-1,::-1]

     例3:

    (1)如何将图片进行全置倒序处理之后,需要保存一下

    带颜色的图片是三维的,查看一下形状

    (3)下面是上下倒置的结果:

    (4)下面是左右倒置的结果

     

    (5)下面是颜色倒置的结果:

    例4:变形

    使用arr.reshape()函数,注意参数是一个tuple!
    基本使用
    1.将一维数组变形成多维数组

    将上边的array转换成 一维的,7行5列,再转换成5行7列的

    扩展:转化成三维的

    例5:图片倒置

    #对一维数组中所有的元素倒置

    例5;级联(numpy中理解成合并就行),

    panda中不能这么理解

     

    (1)axis表示的是轴向的意思

     axis=0:轴向     0表示的是竖直的轴向 1水平的轴向

     

    看一下arr的形状

    concatentate必须对齐才行,否则会报错

    注意上图,只有二维和二维的才能合并,行和列一定要对齐才行

     

    例6:

    (1)合并两张图片

     axis=1表示左右,竖向连接,axis=0表示上下,横向连接

     

    (2)水平级联hstack和竖直级联vstack

     

     

    例7.  切分:

    下面我们看下是如何切分的?

    (1)

    (2)下面是切分之后的结果

    axis==>表示的是横着切

    下边表示的是竖着切

    (3)

     切分照片?

     

     (4)

     

    聚合操作:

    (1)

     

    (2)np.max/np.min

     对所有的求和

     

    求方差

    可以指定轴向,将三维数组中每个轴向的第三个数组进行求方差

     

    广播机制:

     (1)

     

    通过广播机制进行相加

    (2)

     

    缺失的数据通过已有的数据进行填充

     

    (3)

     

     

    缺失的维度会自动补齐这个数值

     ndarry的排序

    (1)快速排序

    第一个不改变输入,第二个改变输入,第一种是升序

     

     下边的第一种也是不改变

    139得到的结果是:

    array([3,5,6,7,8])

     

  • 相关阅读:
    leetcode -- 4Sum
    leetcode -- 3Sum Closest
    leetcode -- 3Sum
    leetcode -- Longest Common Prefix
    leetcode -- Container With Most Water
    leetcode -- Palindrome Number
    rep stos 指令(Intel汇编)
    利用反汇编手段解析C语言函数
    C语言反汇编入门实例
    系统栈的工作原理
  • 原文地址:https://www.cnblogs.com/studybrother/p/10996605.html
Copyright © 2011-2022 走看看