zoukankan      html  css  js  c++  java
  • 数据分析--numpy的基本使用

     一、numpy概述

    NumPy是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础。

    NumPy的主要功能:

    • ndarray,一个多维数组结构,高效且节省空间
    • 无需循环对整组数据进行快速运算的数学函数
    • *读写磁盘数据的工具以及用于操作内存映射文件的工具
    • *线性代数、随机数生成和傅里叶变换功能
    • *用于集成C、C++等代码的工具

    python中操作方式:

    • 安装方法:pip install numpy
    • 引用方式:import numpy as np

    也可以通过安装anaconda软件操作,里面包含(numpy,pandas以及Matplotlib多个库),本片文章是在anaconda3中运行!!!

    二、NumPy:ndarray-多维数组对象

    创建ndarray:np.array()

    ndarray是多维数组,与列表的区别是:

    • 数组对象内的元素类型必须相同
    • 数组大小不可修改

    常用属性:

    • T            数组的转置(对高维数组而言)
    • dtype     数组元素的数据类型
    • size       数组元素的个数
    • ndim      数组的维数
    • shape    数组的维度大小(以元组形式)

    代码示例:

    三、NumPy:ndarray-数据类型

    ndarray数据类型:dtype: 
    ●布尔型:bool_ 
    ●整型:int_ int8 int16 int32 int64 
    ●无符号整型:uint8 uint16 uint32 uint64 
    ●浮点型:float_ float16 float32 float64
    ●复数型:complex_ complex64 complex128

    四、NumPy:ndarray-创建

    创建ndarray:
    ●array()		将列表转换为数组,可选择显式指定dtype
    ●arange()		range的numpy版,支持浮点数
    ●linspace()	        类似arange(),第三个参数为数组长度
    ●zeros()		根据指定形状和dtype创建全0数组
    ●ones()		        根据指定形状和dtype创建全1数组
    ●empty()		根据指定形状和dtype创建空数组(随机值)

    五、NumPy:索引和切片

      -代码示例:
      ●a= np.array([0,1,2,3,4,5,6,7,8,9])
      ●a2 = np.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]])
    
    -数组和标量之间的运算
        ●a+1	a*3	1//a	a**0.5
    -同样大小数组之间的运算
        ●a+b	a/b	a**b
    -数组的索引
        ●一维数组:a[5] --> #5	
        ●多维数组:
            ●列表式写法:a2[2][3]  --> #13		
            ●新式写法:a2[2,3](推荐)  --> #13
    -数组的切片
        ●一维数组:a[5:8]       --> # array([5,6,7])        
                 a[:3] = 1     -->  # array([1,1,1,3,4,5,6,7,8,9])
        ●二维数组:a2[1:2, :4]  -->  # array([[5, 6, 7, 8]])  
                a2[:,:1]     -->  # array([[0],[5],[10]])
           a2[:,1]     -->  # array([1,6,11])
    -与列表不同,数组切片时并不会自动复制,在切片数组上的修改会影响原数组。	
        ●【解决方法: copy()】             
    

    六、NumPy:布尔型索引

    问题:给一个数组,选出数组中所有大于5的数。
    答案:a[a>5]
    原理:
    a>5会对a中的每一个元素进行判断,返回一个布尔数组
    布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组
    
    问题2:给一个数组,选出数组中所有大于5的偶数。
    答案:
    a[(a>5) & (a%2==0)]
    原理:此处不能用and,and为关键字;&为运算符,表示与的意思
    
    问题3:给一个数组,选出数组中所有大于5的数或偶数。
    答案:
    a[(a>5) | (a%2==0)]
    原理:此处 | 表示或的意思
    
    备注:~表示非的意思

     七NumPy:花式索引*

    问题1:对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组。
    ●答案:a[[1,3,4,6,7]]
    
    问题2:对一个二维数组,选出其第一列和第三列,组成新的二维数组。
    ●答案:a[:,[1,3]]
    
    问题3: 已知 a2 = np.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]]),想要获取新的数组array([[1,3],[11,13]])该怎么切?
    ●答案: a2[[0,2],:][:,[1,3]] 
    ●备注:切勿两边同时花式索引,a2[[0,2],[1,3]],得出 array([ 1, 13])       
    

    八、NumPy:通用函数

    通用函数:能同时对数组中所有元素进行运算的函数

    九、NumPy:数学和统计方法

    常用函数:
    ●sum	求和
    ●mean	求平均数
    ●std	求标准差
    ●var	求方差
    ●min	求最小值
    ●max	求最大值
    ●argmin	求最小值索引
    ●argmax	求最大值索引

    十、NumPy:随机数生成

    常用函数
    ●rand		给定形状产生随机数组(0到1之间的数)
    ●randint	给定形状产生随机整数
    ●choice		给定形状产生随机选择
    ●shuffle	与random.shuffle相同
    ●uniform	给定形状产生随机数组
  • 相关阅读:
    蓝屏的钙,好喝的钙
    正则
    JavaScript 获取当前时间戳 (3种方式)
    react-native upoad imagepicker
    xmlhttprequest请求
    修改配置使fiddler可以查看https请求
    安装composer
    判定 android IOS
    看端口任务
    squid 缓存Internet 软件
  • 原文地址:https://www.cnblogs.com/dalyday/p/9295459.html
Copyright © 2011-2022 走看看