当前位置: 首页 > news >正文

python每日学习:numpy库的用法(上)

python每日学习10:numpy库的用法(上)

  • 下载numpy库

    pip install numpy
    
  • 检测环境是否安装

    import numpy
    import numpy as np
    a=np.arange(10)
    print(a)
    
  • array创建数组

    名称描述
    dtype数组元素的数据类型,可选
    copy对象是否需要复制,可选
    order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
    subok默认返回一个与基类类型一致的数组
    ndmin指定生成数组的最小维度
    object数组或嵌套的数列
    #numpy模块的array函数可以生成多维数组。
    #numpy的格式:numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)
    #创建一维
    a=np.array([1,2,3,4,5,6,7,8])
    print(a)
    print("a数组的维度:",a.shape)
    #创建二维
    a1=np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(a1)
    print("a1数组的维度:",a1.shape)
    #ndmin参数的使用
    a3=np.array([1,2,3,4,5,6],ndmin=3)
    print(a3)
    #dtype的使用
    a4=np.array([1,2,3,4,5,6],dtype=np.float32)
    print(a4)
    
  • arange创建数组

    名称描述
    start起始值,默认为0
    stop终止值(不包含)
    step步长,默认为1
    atype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
    #arange的格式:numpy.arange(start,stop,step,dtype)
    #arange生成0到5的数组
    b=np.arange(0,6,dtype=int)
    print(b)
    #arange设置了起始值、终止值及步长
    b1=np.arange(10,20,2)
    print(b1)
    # arange创建二维数组
    b2=np.array([np.arange(1,4),np.arange(4,7),np.arange(7,10)])
    print(b2)
    print("b2数组的维度:",b2.shape)
    
  • 随机数创建

    名称描述
    seed确定随机生成器种子
    permutation返回一个序列的随机排列或返回一个随机排列的范围
    shuffle对一个序列就地随机排列
    rand产生均匀分布的样本值
    randint该方法有三个参数low、high、size三个参数。默认high是None,如果只有low,那范围是[0,low)。如果有high,范围就是[low,high)。
    random(size=None)该方法返回[0.0, 1.0)范围的随机数。
    randn(d0,d1,…,dn)randn函数返回一个或一组样本,具有标准正态分布(期望为0,方差为1)。dn表格每个维度,返回值为指定维度的array
    random模块包含了很多方法可以用来产生随机数
    #随机数:返回[0.0, 1.0)范围的随机数。格式:numpy.random.random(size=None)
    c=np.random.random(size=4)
    c1=np.random.random(size=(3,4))
    print(c)
    print(c1)
    # 随机整数:该方法有三个参数low、high、size三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)
    #格式 :numpy.random.randint()
    c2=np.random.randint(5,size=8)
    print(c2)
    c3=np.random.randint(5,12,size=10)
    print(c3)
    c4=np.random.randint(5,10,size=(3,5))
    print(c4)
    
  • 正态分布

    # 正态分布:randn函数返回一个或一组样本,具有标准正态分布(期望为0,方差为1)。dn表示每个维度返回值为指定维度的数组
    #格式:numpy.random.randn(d0,d1,...,dn)
    d=np.random.randn()
    print(d)
    d1=np.random.randn(2,4)
    print(d1)
    d2=np.random.randn(4,2,3)
    print(d2)
    # 指定期望和方差的正太分布
    #正太分布(高斯分布)loc:期望 scale:方差 size 形状
    d3=np.random.normal(loc=3,scale=4,size=(2,3,2))
    print(d3)
    
  • ndarray对象

    名称描述
    .ndim秩,即轴的维度或维度的数量
    .shapendarray对象的尺度,对于矩阵,n行m列
    .sizendarray对象元素的个数,相当于shape的n*m的值
    .dtypendarray对象的元素类型
    .itemsizendarray对象中每个元素的大小,以字节为单位
    #ndarray对象: N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
    e=np.random.randint(10,size=6)
    e1=np.random.randint(10,size=(3,4))
    e2=np.random.randn(3,4,5)
    print('ndim属性'.center(20,'*'))
    print('ndim',e.ndim,e1.ndim,e2.ndim)
    print('shape',e.shape,e1.shape,e2.shape)
    print('dtype',e.dtype,e1.dtype,e2.dtype)
    print('size',e.size,e1.size,e2.size)
    print('itemsize',e.itemsize,e1.itemsize,e2.itemsize)
    
  • zeros创建

    # zeros创建:创建指定大小的数组,数组元素以 0 来填充
    # 格式:numpy.zeros(shape,dtype=float,order='c'
    f=np.zeros(5)
    print(f)
    f1=np.zeros((5,),dtype=int)
    print(f1)
    f2=np.zeros((2,2))
    print(f2)
    # zeros_like:根据传入的数组形状创建全为0的数组
    ff=np.array([[2,2,2],[3,4,5],[6,7,8]])
    f3=np.zeros_like(ff)
    print(f3)
    
  • ones创建

    # ones创建:创建指定形状的数组,数组元素以 1 来填充。
    # 格式:numpy.ones(shape,dtype=None,order='c')
    g=np.ones(5)
    print(g)
    g1=np.ones((3,4),dtype=int)
    print(g1)
    g2=np.ones_like(g1)
    print(g2)
    
  • empty创建

    #empty创建创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组,里面的元素的值是之前内存的值
    # 格式:numpy.empty(shape,dtype=floar,order='c')
    h=np.empty([3,2],dtype=int)
    print(h)
    h1=np.empty_like(h)
    print(h1)
    h2=np.empty(10,dtype=int)
    print(h2)
    h3=np.arange(5)
    h4=np.add(2,h3,out=h2[:5])
    print(h4,h2)
    
  • full()创建

    # full()创建:创建全为某个指定值的数组
    #格式:full(shape,fill_value)
    i=np.full((2,2,3),3)
    print(i)
    
  • 创建单位矩阵

    # 创建单位矩阵:单位矩阵从左上角到右下角的对角线上的元素均为1,除此以外全都为0。任何矩阵与单位矩阵相乘都等于本身,而且单位矩阵因此独特性在高等数学中也有广泛应用。
    i1=np.eye(3,dtype=int)
    print(i1)
    i2=np.identity(3,dtype=int)
    print(i2)
    
  • linspace创建

    名称描述
    start序列的起始值
    stop序列的终止值,如果endpoint为true,该值包含于数列中
    num要生成的等步长的样本数量,默认为50
    endpoint该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。
    retstep如果为 True 时,生成的数组中会显示间距,反之不显示。
    dtypendarray 的数据类型
    linspace创建等差数列
    #linspace创建:linspace函数用于创建一个一维数组,数组是一个等差数列构成的
    #格式:np.linspace(start,stop,num=50,endpoint=True,resource=False,dtype=None)
    # start 
    # stop 
    # num 
    # endpoint 
    # retstep 
    # dtype 
    #linspace
    j=np.linspace(1,10,10)
    print(j)
    # linspace创建等差数列endpoint 设为 true
    j1=np.linspace(10,20,5,endpoint=True)
    print(j1)
    j2=np.linspace(1,5,num=5,endpoint=False)
    print(j2)
    
  • logspace 创建

    logspace 创建
    
  • 一维数组索引和切片

    #:ndarray对象的内容可以通过索引或切片来访问和修改,与 Python中 list 的切片操作一样。ndarray 数组可以基于 0 - n 的下标进行索引,并设置 start, stop及 step 参数进行,从原数组中切割出一个新数组。
    # 一维数组索引和切片的使用
    l=np.array(10)
    # l[2]
    # l[2:7:2]
    # l[2:]
    # 一维数组负索引和切片的使用
    # l[-2]
    # l[-2:]
    # 二维数组的索引和切片
    # 索引直接获取
    l1=np.arange(1,13)
    l2=l1.reshape((4,3))
    print(l2)
    print(l2[1])
    print(l2[2][1])
    # 使用坐标获取数组[
    print(l2[:,1])
    print(l2[2,1])
    print(l2[::2,0])
    print(l2[(2,3),(1,0)])#同时获取第三行第二列,第四行第一列
    # 二维数组负索引的使用
    print(l2[-1])#获取最后一行
    print(l2[::-1])#行进行倒序
    print(l2[::-1,::-1])#行列都倒序
    # 切片数组的复制
    l3=np.arange(1,13).reshape((3,4))
    l4=l3[:2,:2]
    l4[0][0]=11111
    print(l4)
    l4=np.copy(l3[:2,:2])
    l4[0][0]=2222
    print(l4)
    
  • 改变数组的维度

    # 改变数组的维度:通过reshape方法可以将一维数组变成二维、三维或者多维数组,也可以通过reshape方法将多维数组变成一维。
    m=np.arange(24)#创建一维的数组
    m1=m.reshape(2,3,4)#使用reshape将一维数组变成三维数组
    m2=m.reshape(3,8)#将a变成二维数组
    m.reshape(-1)#将多维数组变成一维数组
    # 通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数组的维度还可以直接设置Numpy数组的shape属性(元组类型),通过resize方法也可以改变数组的维度。
    m3=m1.ravel()#使用ravel函数将三维的m1变成一维的数组
    m4=m2.flatten()#使用flatten函数将二维的m2变成一维的数组
    m1.shape=(6,4)#使用shape属性将三维的m1变成二维数组(6行4列)
    m1.resize((2,12))#使用resize修改数组的维度
    

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • .net 连接达梦数据库开发环境部署
  • 线性代数重要知识点和理论(下)
  • SpringBoot-21 SpringBoot微服务的发布与部署(3种方式)
  • photoshop学习笔记——移动工具
  • ROS参数服务器增删改查实操Python
  • 网络安全常见错误及解决办法(更新中)
  • 数据结构——单链表OJ题(下)
  • Golang | Leetcode Golang题解之第279题完全平方数
  • UE5 C++跑酷练习(Part2)
  • paraFoam 运行 报错 usr/lib/x86_64-linux-gnu/libQt5Core.so 已解决
  • 将git默认的编辑器设置为vin
  • springboot3-web-questions-分析
  • flink 实现大数据实时数据采集
  • 2024年jupyter notebook如何复制单元格cell输出的图片
  • Spring Boot 中常用注解及其用法
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 2018一半小结一波
  • 2019年如何成为全栈工程师?
  • go append函数以及写入
  • jdbc就是这么简单
  • markdown编辑器简评
  • Mithril.js 入门介绍
  • node.js
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • windows下mongoDB的环境配置
  • 从tcpdump抓包看TCP/IP协议
  • 大主子表关联的性能优化方法
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于组件的设计工作流与界面抽象
  • 聚簇索引和非聚簇索引
  • 力扣(LeetCode)22
  • 前端技术周刊 2019-02-11 Serverless
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 关于Android全面屏虚拟导航栏的适配总结
  • #APPINVENTOR学习记录
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)(1.9) MSP (version 4.2)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (十五)使用Nexus创建Maven私服
  • (转)c++ std::pair 与 std::make
  • (转)h264中avc和flv数据的解析
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .gitignore不生效的解决方案
  • .gitignore文件忽略的内容不生效问题解决
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 8.0 发布到 IIS
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net wcf memory gates checking failed