zoukankan      html  css  js  c++  java
  • Python--Numpy.s(numpy的创建,通用函数,索引和切片,随机数,数据存读)

    Numpy

     数组的运算 多维的数组对象 , ndarray  #1. 实际数据 .  2.元数据 描述信息

    数组的基础属性 :

    1 .ndim    #维度
    2 .shape    #维度数值个数
    3 .size    #数组内容个数
    4 .dtype    #数组类型
    5 .itemsize    #数组内容占内存多少字节

    数组的创建 : 

    # array()    数组内容是: 函数,列表,元组,数据,生成器,序列
    import numpy as np
    #示例
    np.array(range(10)
    np.array([1,2,3,4,5])
    np.array([[1,2,3,4,5],[6,7,8,9,9]])
    
    # arange()    类似于Python的 range()
    np.arange(10)     #生成10个整数
    np.arange(10.)      #生成10个浮点型数值
    np.arange(1,10,0.1)     #从1到10 每隔0.1生成1个
    np.arange(10000)        #生成10000,显示前3个,中间省略,显示后面3个
    
    # linspace()     返回在间隔[开始,停止]上 num个均匀的样本
    np.linspace(2.0,3.0,num=5)   #2.0到3.0  生成5个均匀的值
    np.linspace(2.0,3.0,num=5,endpoint=False)  #endpoint  默认包头包尾,False不包尾
    np.linspace(2.0,3.0,num=5,retstep=True)   #retstep   步长,分5个值得步长是多少  默认为False
    
    # zeros()/zeros_like()/ones()/ones_like()  #数组生成,zeros 0填充 ones  1填充   *_like()
    np.zeros(5)   #生成1维5个0  float类型
    np.zeros((2,3,2),dtype=np.int)  #生成2维,3列,0填充,类型为int32 因为多了个2  所以是3维的,可以任意维
    # ↑↑↑  语法 numpy.zeros(shape ,dtype=float,order='C'): 返回给定形状和类型的新数组,用零填充.shape 是指形状
    np.zeros_like(np.arange(10))     #复制arr1 成一个新的数组,同样的新的数组
    
    # eye()  生成正方形的N*N的单位矩阵,对角线为1,其余为0
    np.eye(10)

     

    Numpy 的通用函数 基本操作 :

    # 数组形状    转置,形状变换,行列转换
    # .T / .reshape() / .resize() :返回一个新的数组
    arr1.T
    arr2 = np.ones((5,10))
    arr2.reshape(10,5) #形状改变
    np.resize(np.arange(1,13).reshape(3,4),(2,2)) #resize()  改变形状,元素不够填充
    
    # 数组数据复制    .copy() :   数组的副本
    arr1.copy()
    
    # 数据类型转换    .astype()   参数 : np.数据类型
    arr3.astype(np.int)    #返回一个新的数组  int32 , float64 
    
    # 数组的堆叠和拆分  hstack() / vstack() / stack()
    np.hstack((数组1,数组2))   # 水平堆叠 , 行数要一致
    np.vstack((数组1,数组2))   # 垂直堆叠 , 列数要一致
    np.stack((数组1,数组2),axis=0|1)   # 通过指定维度,轴,需要形状相同
    
    np.hsplit(数组,列数)  # 水平拆分--按列
    np.vsplit(数组,行数)  # 垂直拆分--按行
    
    # 数组的简单运算    矢量化
    #  + / - / * / 除 / **1 / .mean() / .max() / .min() / .var()方差 / .std() 标准差
    # 维度计算, 行,列 上述函数可添加参数 axis=行,列  sort() 参数为数组  数组排序

     

    Numpy 索引和切片 : 

    ar = np.arange(16).reshape(4,4)
    ar[0]  #切除一行   切片为下一个维度的一个元素
    ar[0][-1]  #二次索引,得到其中的一个值
    ar[:3]   #切出多行
    ar[1,1]   #类似二次索引
    ar[:2 , 1:]   #二维切片
    
    # bool 布尔类型索引 False /True
    ar = np.arange(12).reshape(3,4)
    i = np.array([True,False,True])
    j = np.array([False,True,False,False])
    ar[i]   #选所有为True
    ar[i,:]   #选行
    ar[i,j]   #选列
    
    # 基本的布尔类型
    # 数组的基本运算bool  > < !=  //  %
    ar[ar > 5]  #选取大于?的数

    Numpy 随机数 : 

    # Numpy随机数 np.random
    np.random.normal(size=(5,5)) #符合标准正态分布的?*?样本值
    np.random.rand(4,5) # [0,1] 之间的随机样本或N维附件数组   均匀分布
    
    np.random.randn(4,5)  #生成一个浮点数或者N维的浮点数组   正态分布
    # np.random.randint(low ,high=None,size=None ,size =None,dtype='1')
    # 生成一个整数或者N维的整数数组 若high不为None时,取[low,high]之间随机整数
    # 否则取值(0,low)之间随机整数,且high必须大于low. dtype参数,只能是int类型
    np.random.randint(0,10,size=6) # 取0到9随机整数 ,长度6
    np.random.randint(1,100,size=[3,5]) #size 参数[]  为[维度,长度]

     

    Numpy 数据的存储和读取 : 

    # Numpy 输入输出,数据的存读
    np.save(路径及文件.npy, 数组数据)
    np.load(路径及文件.npy)
    
    #文本类数据
    np.savetxt(路径及文件.txt,数组,delimiter=',') delimiter 数据分割符
    np.loadtxt(路径及文件.txt,delimiter=',')
  • 相关阅读:
    窗口显示于parent控件上
    DELPHI SOCKET 通信编程要点小结
    dxBarManagerToDxNavBar方法
    DLL直接返回对象
    海量数据库的查询优化及分页算法方案
    excel怎么只打印某页?excel怎么只打印某几页
    HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析
    excel中如何设置只打印第一页
    Navicat Premium 常用功能讲解
    laravel查询构造器DB还是ORM,这两者有什么区别,各该用在什么场景中
  • 原文地址:https://www.cnblogs.com/luowei93/p/11720544.html
Copyright © 2011-2022 走看看