一、简介

  numpy主要是用来存储和处理大型矩阵,提供了一种存储单一数据类型的多维数组对象------ndarray。还提供了多种运算函数,能够完成数据计算和统计分析,是数据分析的重要工具包。

二、数组对象(ndarray)

  1、创建数组对象

    (1)、创建自定义数组

        1、numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)

            object:就是要创建的数组

            dtype:表示数组所需的数据类型,默认是None,即保存对象所需的最小类型

            ndmin:指定生成数组应该具有的最小维数,默认为None。

            

        2、通过arange函数创建一维数组:arange(start, end, sep)

          

        3、创建一维等差数组:linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

          

        4、创建等比数列:logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

          

        5、创建全零数组:zeros(shape, dtype=None, order='C')

          

        6、创建全为1的数组:ones(shape, dtype=None, order='C')

          

        7、创建对角线全为1的多维数组:eye(N, M=None, k=0, dtype=float)

          

        8、创建自定义对角线数值的数组:diag(v, k=0)

          

    (2)、创建随机数组,利用numpy包里的random模块

        1、创建0-1的随机浮点数一维数组:random.random(num)

          

        2、创建指定范围的随机整数多维数组:randint(low, high=None, size=None, dtype='l')

          

        3、创建服从均匀分布的随机数组,范围[0, 1):rand(*dn)

          

        4、创建服从正态分布的随机数组:randn(*dn)

          

  2、数组对象属性

    ---------数组属性:

            ndim:表示数组维数,返回int类型

            shape:表示数组的形状大小,对于n行m列的矩阵,形状为(n,m),返回tuple类型

            size:表示数组的元素总个数,等于数组形状的乘积,返回int类型

            dtype:描述数组中的元素的类型,返回data-type

            itemsize:表示数组的每个元素的大小(以字节为单位),返回int类型

    -----------访问属性:

            

  3、改变数组形状

    (1)、使用shape改变形状

        

    (2)、使用reshape改变形状

        

    (3)、展平数组:

        ----使用ravel函数

        

        ----使用flatten函数

        

    (4)、组合数组:

        -----使用hstack/vstack函数

        

        -----使用concatenate函数

        

    (5)、分割数组:

        -----使用hsplit/vsplit函授

        

        -----使用split函数

        

  4、访问数组

    (1)、一维数组的访问

        

    (2)、二维数组的访问

        

三、数据类型

  numpy的数据类型比python内置的数据类型多,常用的数据类型如下所示:(引用菜鸟教程:http://www.runoob.com/numpy/numpy-dtype.html)

  

四:numpy的矩阵对象

  1、创建矩阵

    

  2、矩阵属性

      T:返回自身的转置

      H:返回自身的共轭转置

      I:返回自身的逆矩阵

      A:返回自身数据的二维数组的一个视图

      

  3、矩阵运算

    (1)、四则运算

        

        

        

        

    (2)、比较运算

        比较运算符:>、<、==、>=、<=、!=

        返回结果:一个布尔数组,也就是每个元素的比较结果

        

        

    (3)、逻辑运算

        逻辑运算符:逻辑或-----any,逻辑与------all

        返回结果:一个布尔值True或False

        

五、ufunc函数(universal function)

  1、概念:

      全程通用函数(universal function),是一种能够对数组中所有元素进行操作的函数,结果是以数组形式输出,因此不需要对数组每个元素都进行操作,所以比math库中的函数操作效率高。

  2、广播机制

      广播(broadcasing)是指不同形状的数组之间进行算数运算的一种方式。

  3、广播机制----->四原则

      参与运算的数组其中一个的维度为1且列相等

      参与运算的数组的维度相等,则其中一个的列为1且行相等

      参与运算的数组都向其中形状最大的看齐,即根据shape属性最大的运算,形状不足的就加按照行或列补齐,也就是行复制或者列复制

      输出的数组跟最大的数组形状相同

      

六、利用numpy统计分析

  1、文件的读写

    (1)、以二进制形式写入/读取文件

        -----写入文件:save(file, arr, allow_pickle=True, fix_imports=True)/savez(file, arr, allow_pickle=True, fix_imports=True)

        

        -----读取文件:load(file, mmap_mode=None, allow_pickle=True, fix_imports=True,encoding='ASCII')

        

        

    (2)、以文本形式写入/读取文件(txt,csv格式)

        -----写入文件:loadtxt(fname, dtype=float, comments='#', delimiter=None,converters=None, skiprows=0, usecols=None, unpack=False,ndmin=0)

        

        -----读取文件:loadtxt(fname, dtype=float, comments='#', delimiter=None,converters=None, skiprows=0, usecols=None, unpack=False,ndmin=0)

          

  2、数组排序

    (1)、直接排序

        方法:sort(a, axis=-1, kind='quicksort', order=None)

        参数:axis=1 为沿横轴排序; axis=0 为沿纵轴排序,默认沿横轴排序

        

    (2)、间接排序

        方法:argsort(a, axis=-1, kind='quicksort', order=None)返回的是下标

         参数:axis=0 为沿横轴排序; axis=0 为沿纵轴排序,默认沿横轴排序

        

  3、数据去重

    方法:unique(ar, return_index=False, return_inverse=False,return_counts=False, axis=None)

     

  4、重复数据,可以理解为数据的复制

    (1)、重复整个数组

        方法:tile(A, reps)

         参数:A表示数组,reps表示重复的个数

    (2)、重复数组中的元素

        方法:repeat(a, repeats, axis=None)

        参数:a 表示传入的数组,repeats表示要重复的次数,axis=1表示沿横轴重复,axis=0表示沿纵轴重复

        

  5、常用统计函数

    参数:axis=0 表示纵向计算

       axis=1 表示横向计算

       默认不写 表示计算整个数组

    (1)、求和:sum

        

    (2)、求平均值:mean

        

    (3)、求最大值:max

        

    (4)、求最小值:min

        

    (5)、求最大元素的索引:argmax

        

    (6)、求最小元素的索引:argmin

        

    (7)、求方差:var

        

    (8)、求标准差:std

        

    (9)、求所有元素的累计和:cumsum

        

    (10)、求所有元素的累计积:cumprod

        

python之numpy包知识要点总结的更多相关文章

  1. windows下python安装Numpy、Scipy、matplotlib模块(转载)

    python下载链接     Numpy下载链接 python中Numpy包的安装及使用 Numpy包的安装 准备工作 Python安装 pip安装 将pip所在的文件夹添加到环境变量path路径中 ...

  2. python numpy包

    在numpy包中我们可以用数组来表示向量,矩阵和高阶数据结构 首先导入numpy包: from numpy import* 初始化numpy数组有多种方式,比如说 1.python列表或元祖 2.使用 ...

  3. Python Numpy包安装

    1,下载python 下载地址: https://www.python.org/downloads/windows/ 2,配置python环境变量 在电脑的系统属性的系统变量path中添加python ...

  4. Python原来这么好学-1.3节: 知识要点总结与内容复习

      这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编 ...

  5. Python之Numpy详细教程

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...

  6. Python中Numpy及Matplotlib使用

    Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...

  7. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  8. [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决

    这篇文章主要讲述Python如何安装Numpy.Scipy.Matlotlib.Scikit-learn等库的过程及遇到的问题解决方法.最近安装这个真是一把泪啊,各种不兼容问题和报错,希望文章对你有所 ...

  9. python安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

随机推荐

  1. 使用keytool自建证书及应用

    1. 在密钥库文件 keystore.jks 中生成证书: keytool -genkey -alias cas -keyalg RSA -keypass changeit -storepass ch ...

  2. Polymer初探

    Polymer是什么? Polymer英文为 n.聚合物:多聚体 网络高分子:聚合体:高分子聚合物 应用在Web组件场景, 表达的是, 一个一个小的Web组件,可以通过此框架聚合为一个 整个页面. h ...

  3. Tomcat下载,及环境变量配置

    首先,介绍一下Tomcat: Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公 ...

  4. bzoj 3916 暴力哈希

    暴力的哈希,注意: 将一个串当作另一个串的前缀,需要乘上p[len],len=后面串的长度 这是自己的代码,拿数据在本地测A掉了,但是bz上wa了??bz换数据了难道?? #include<cs ...

  5. Node 体验 事件驱动、非阻塞式 I/O

    https://github.com/nswbmw/N-blog/blob/master/book/2.1%20require.md 全局对象和浏览器中的window类似 1.console.log( ...

  6. springboot12-zuul

    Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门,提供动态路由,监控,弹性,安全等的边缘服务 所有请求都经过网关(API Gateway)zuul,然后转发到各个子服 ...

  7. Linux之Ubuntu下DSL拨号上网

    可视化桌面配置方法 1.编辑连接 2.选择 增加 3.选择 DSL 4.选择 新建连接[cmcc@gx属于移动校园用户的ISP指定后缀] 6.OK 当然,还有其他拨号上网的办法: [Linux/Ubu ...

  8. iFrame跨域解决办法

    按情境分1.不跨域时2.主域相同.子域不同时3.主域不同不跨域时访问iframe: contentWindow访问父级:parent访问顶级:top a.html <html xmlns=&qu ...

  9. 电脑丢失api-ms-win-core-libraryloader-|1-1-1.dll怎么办

    电脑从win7升级到win10,到98%的时候提示说丢失.dll,如图,我是64位系统,怎么解决这个问题呢?在脚本之家下载了 放到system32中也没有用,在线等,谢谢! 用C:\Windows\S ...

  10. 第26月第2天 vim javacomplete

    1. 将解压出来的autoload 和 doc的内容添加到~/.vim/下的相应目录下,如果~/.vim下没有这两个文件夹就手动创建其中autoload里的有javacomplete.vim java ...