数据挖掘之numpy学习(一)

1.1 numpy

        NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

        num - numerical 数值化的

        py - python

1.1.1 numpy优势

        Python的一个科学计算库,用于快速处理任意维度的数组。常用于数组和矩阵操作。

        ndarray(下文中的array均为ndarray)

                n - 任意个

                d - dimension 维度

                array - 数组

        与List对比

        1)numpy的计算速度和效率比List高效

        2)存储方式不同

                ndarray - 相同类型 - 通用性不强

                List - 不同类型 - 通用性强

        3)ndarray支持向量化运算

        4)底层语言

                C语言,解除了GIL(全局解释器锁),效率高

1.1.2 ndarray的属性

        np.shape 数组维度的元组

        np.ndim 数组维度

        np.size 数组中的元素数量  

        np.itemsize 一个数组元素的长度(字节)

        np.dtype 数组元素的类型(默认为int64)

1.1.3 数组的创建

        Import numpy as np

        X = np.array([],dtype=”float32”(或者dtype=np.float32))

        1)生成0和1数组

                np.zeros(shape=(a,b),dtpye=np.float32)

                np.ones(shape=(a,b),dtpye=np.float32)

        2)从现有数组生成

                np.array()

                np.asarray()  浅拷贝

                np.copy(array)  深拷贝,跟随array一起变化,其他两个不变

        3)生成固定范围的数组(切片)

                np.linspace(a,b,c)

                        [a,b] 为区间,元素之间为等距离,c为个数

                np.arange(a,b,c)

                  .range(a,b,c)

                        [a,b) 为区间,c是步长

        4)生成随机数组

                均匀分布:np.random.uniform(low=a,high=b,size=None)

                        a最小值,b最大值,c个数

                正态分布:np.random.normal(loc=a,scale=b,size=None)

                        loc:float 此概率的均值

                        scale:float 标准差

                        size:输出的数量,默认为None

1.1.4 数组的索引、切片

        例如:array[a,b:c]   数组中a行中第b+1列到c+1列的元素

1.1.5 数组的形状修改

        array.reshape(shape)   返回新的array,原始值不变

                .resize(shape)   没有返回值,原始值变了

                .T   转置

1.1.6 类型修改

        array.astype(dtype) 例如:.astype(“int32”)  序列化到本地

        .tostring()  转换为bytes

        注意:在jupyter中会由于输出过长无法显示出来

1.1.7数组去重

        np.unique(array)  去掉数组内重复的元素

        set(array.flatten())

1.1.8 ndarray运算

        逻辑运算

                array > a   数组中大于a的元素变为True,否则为false

                array(array > a)     只展示大于a的元素

                array(array > a) = 1     大于a的元素都会变为1,其余不变

        通用判断函数:

                np.all(布尔值)  例:np.all(array(a:b,c:d) > 0)   有一个为False就返回false

                np.any(布尔值)   有一个为True就返回True

        三元运算符

        np.where(array > 0,1,0)   在数组中大于0的元素置为1,否则置为0

        np.logical_and(array>a,array<b)  都满足为true,否则为false

        np.logical_or(array>a,array<b)  满足其一就为true,否则为false

        复合使用:np.where(np.logical_or(array>a,array<b),1,0)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值