【1】为什么要用numpy
低效的python for 循环
eg: 求100万个数的倒数
 
%timeit: python 中 统计时间的魔术方法(多次运行取平均值)
实现相同的运算,numpy 的运行速度是python 的25 倍,产生了质的飞跃
【2】numpy 为什么如此高效?
numpy 是由C 语言编写的,对代码进行整体编译,速度更快
numpy 数组内的数据类型必须是统一的,而python 列表支持任意类型的数据填充
C语言可以实现多线程并行,python 语言执行时有线程锁
说明:
多线程,是指从软件或硬件上实现多个线程并发执行的技术,有硬件的支持,计算机能够在同一时间执行多个线程,进而提升整体处理性能,
【3】 什么时候使用numpy?
在数据处理的时候,实现一些向量化、矩阵化操作的时候,要优先考虑用numpy
eg: 两个向量的点乘
矩阵乘法
【4】numpy 数组的创建
4.1从列表开始创建
         
4.2 设置数组的数据类型
                      
【5】 从头创建数组
5.1 创建长度为5 的数组,值都是0
              
5.2 创建一个2*4 的浮点型数组,值都为1
                  
5.3 创建一个3*5 的数组,值都为8.8
                        
5.4 创建一个3*3 的单位矩阵
                    
5.5 创建一个线性序列数组,从1开始,到15结束 ,步长为2
                   
5.6 创建一个4个元素的数组,这四个数均匀的分配到0~1
                    
5.7 创建一个10 个元素的数组,形成1~10^9 的等比例数列
                        
5.8 创建一个3*3 的,在0~1 之间均匀分布的随机数构成的数组
                       
5.9 创建一个3*3 ,均值为0 ,标准差为1的正态分布随机 数构成的数组
                       
5.10 创建一个3*3 的,在【0,10 】之间随机整数构成的数组
                                 
5.11 随机重排列
                              
5.12 随机采样
按指定形状采样
                              
【6】数组的性质
6.1 数组的属性
                 
6.2 数组的形状shape
                        
6.3 数组的维度 ndim
                  
6.4 数组的大小 size
                  
6.5 数组数据的类型 dtype
                  
【7】 数组的索引
7.1 一维数组的索引
            
7.2 多维数组的索引 --- 以二维为例
            
注意: numpy 数组的数据类型是固定的,向一个整型数组插入一个浮点值,浮点值会向下进行取暖
     
【8】 数组的切片
8.1 一维数组 和列表一样
             
8.2 多维数组 (以二维为例)
              
8.3 获取数组的行和列
                  
8.4 切片获取的是视图,而不是副本
              
说明: 视图元素发生修改,则原数组亦会发生相应的修改
           
8.5 修改切片的安全方式 :copy
                        
【9】 数组的变形 reshape()
            
注意:reshape 返回的是视图,而非副本
                    
9.1 一维向量转行向量
原文:https://www.cnblogs.com/huateng/p/15169288.html