python数据清洗 - Numpy库

目录

  1. Numpy 概述
  2. Numpy的安装
  3. Numpy的使用
    (1) 导入Numpy包:
    (2) 数据类型:
    (3) Ndarray数组的创建
    (4) 常用属性
    (5) 数组的索引切片
    (6) 浅拷贝与深拷贝
    (7) 数组的变形
    (8) 数组的拼接
    (9) 数组的分裂
    (10) Numpy基本运算

1.Numpy 概述

(1)Numpy是Numerical Python 的简称,是高性能计算和数据分析的基础包

2.Numpy的安装

(1)使用Python的包安装程序pip来安装:pip install numpy
(2)安装anaconda的python发行版,内置了很多科学计算需要的第三方包

3.Numpy的使用

(1)导入Numpy包

import numpy (as np 将np作为numpy的别名)

(2)数据类型:

**①bool_ 布尔类型(True,False),占用一个字节
②int_ 默认证书类型,与C语言相同,通常为int_32或int_64
    1)int8(-128 - 127)
    2)int16(-32768 - 32767)
    3)int32(-2147483648 - 2147483647)
    4)int64(-9223372036854775808 - 9223372036854775807)
③uint_ 无符号整型
    1)uint8(0 - 255)
    2)uint16(0 - 65535)
    3)uint32(0 - 4294967295)
    4)uint64(0 - 18446744073709551615)
④float_ 浮点型(默认float为float64)
    1)float16(半精度浮点,5位指数,10位尾数)
    2)float32(单精度浮点,8位指数,23位尾数)
    3)float64(双精度浮点,11位指数,52位尾数)
⑤complex_ 复数(默认complex为complex128)
    1)complex64(两个32位浮点数组成)
    2)complex128(两个64位浮点数组成)

(3)Ndarray数组的创建

①np.ones(shape,dtype=None)
    1)生成全1数组
    2)类型由数组元素决定
②np.zeros((shape), dtype = float)
    1) 生成全是0的数组
    2)默认float64类型
③np.empty((shape),dtype = float)
    1)生成空矩阵,内部存储随机值
    2)默认float64类型
④np.diag(v,k=)
    1)生成对角阵
    2)v为对角线,只能生成二维的
    3)k为偏移值,正值向上偏移,负值向下偏移,对角线的值会一直保留,偏移会使数组行列增加
⑤np.full((shape), val)
    1)(shape),数组形状大小
    2)val数组元素值,可以是数,也可以是列表,但列表结构要复合数组形状
⑥ np.eye(N[, M=None],k=0):
    1)生成单位矩阵
    2)N为行数
    3)M为列数,可以省略,默认生成N*N的方阵
    4)k为偏移值,不保留对角线所有值,行列数不改变
⑦np.ones_like(a):
    1)以数组a的形状生成值全是1数组
⑧np.zeros_like(a):
    1)按数组a的形状生成全是0的数组
⑨np.full_like (a, val) :
    1)按数组a的形状生成全是val的数组
⑩生成线性序列
    1)np. arange([start,] stop[, step,], dtype=None)
        a.生成从[start,stop)区间,步长为step的线性序列数组
        b.start默认为0,可省略不写,同时step也无法使用
    2)np.linspace(start,stop,num,endpoint = True):
        a.从[start,stop]等距生成num个元素的线性序列数组
        b.start,stop,num必须是整数
    3)endpoint决定区间是否可以取到stop,为True代表可以取到(默认),为False则取不到stop的值
⑪np.nan和np.inf特殊值
    1)np.nan 空值
    2)np.inf 无穷大
⑫ndarray.astype(dtype = ) 修改数组元素类型
⑬随机数组np.random
    1)np.random.randint(low, high=None, size=None)
        a.范围[low,high)
        b.size 是数组形状(size = (2,2))
    2)np.random.rand(d0, d1, …, dn)
        a.生成0 - 1之间的随机数
        b.d代表维度
    3)np.random.random(szie = None)
        a.生成 0 - 1 之间的随机数
        b.size代表数组形状
    4)生成 a - b之间的随机数组
        a.(b-a) * np.random.random(size = None) + a
    5)生成正态分布
        a.np.random.randn(d0,d1,…,dn) 标准正态分布
    b.np.random.normal(均值,标准差,数组形状) 普通正态分布
    6)T分布
        a.np.random.standard_t(自由度,数组形状)
    7)卡方分布
        a.np.random.chisquare(自由度,数组形状)
    8)F分布
        a.np.random.f(分子自由度,分母自由度,数组形状)
    9)打乱顺序(洗牌)
        a.np.random.shuffle(ndarray)
            a)直接修改原数组
            b)只打乱最外层中的元素排列顺序
    10)随机抽样
        a.np.random.choice(a, size=None, replace=True)
            a)a为ndarray时,在数组中抽取,如果a为int,则生成随机序列
            b)size 抽取形式可为个数或是数组,忽略代表抽取一个数
            c)replace 是否放回抽样,默认放回
    11)随机种子
        a.np.random.seed(seed = None)
        b.固定随机数计算公式的初值
        c.必须和生成数组放在一个格子内(使用jupyter notebook)

(4)常用属性

①ndarray.ndim :数组维度
②ndarray.shape :数组形状
③ndarray.size :元素的个数
④ndarray.dtype :元素的类型
⑤ndarray.itemsize :每个元素的大小,以字节为单位

(5)数组的索引切片

①一维数组的切片
    1)操作方式与列表相同
    2)索引: 数组名[索引值(0-(n-1)]
    3)切片: 数组名[start:stop:step] 左闭右开区间
②高维数组切片
    1)索引:数组名[第一个维度,第二个维度,…,第N个维度]
    2)切片:数组名[第一个维度切片,…,第N个维度切片]

(6)浅拷贝与深拷贝

①ndarray1 = ndarray2 共用内存,完全不复制,相当于一个
②ndarray1 = ndarray2.view() 新增空间,内部地址相同,添加元素不改变,改变共享元素值,都会改变,浅复制,又叫视图
③ndarray1 = ndarray2.copy() 创建一个副本,两数组互不影响,深复制

(7)数组的变形

①a.reshape(shape) : 不改变当前数组,依shape生成,可将两个及以上的维度中的一个维度省略(最多省略一个,可将维度值写为-1,即可起到省略效果)
②a.resize(shape) : 改变当前数组,依shape生成
③a.ravel(): 将数组压缩为一维数组(忽略所有维度,压缩成一维)
④a.T: 数组转置

(8)数组的拼接

①轴: 一个维度就代表一个轴,最外层轴为0轴,由外向内依次递增,最内层轴为-1,由内向外依次递减
②np.concatenate((a1, a2, …), axis=0, out=None)
    1)(a1,a2,…) a代表数组
    2)axis 轴,默认为0
    3)out 选择存放结果数组,形状必须正确,默认为空,代表返回结果

(9)数组的分裂

①np.split(ary, indices_or_sections, axis=0)
    1)ary 数组
    2)indices_or_sections 如果值为整数,则将数组等分,若果是一个列表,则按照列表将数组分裂
    3)axis 轴

(10)Numpy基本运算

①加,减,乘,除,取商,取余运算,都是对应元素进行运算
②规约函数:
    1)ndarry.sum() 指定轴求和
    2)ndarray.sumsum() 指定轴累积和
    3)ndarray.mean() 指定轴求平均数
    4)ndarray.var() 指定轴求方差
    5)ndarray.std() 指定轴求标准差
    6)ndarray.argmax() 指定轴求最大值所在索引
    7)ndarray.max() 指定轴求最大值
    8)ndarray.min() 指定轴求最小值
③数组排序
    1)ndarray.sort(axis = 0) 指定轴排序,原地修改数组,无返回值
    2)np.sort(ndarray) 不会修改原数组,有返回值
④数据的掩码提取
    1)通过广播机制,对数组进行整体逻辑判断,提取数据
        a.& 等价于 and 逻辑与
        b.| 等价于 or 逻辑或
        c.~ 等价于 not 逻辑非
    2)ndarray.where() 返回满足条件的数组元素索引

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值