【Python】range()、np.arange()、np.linspace()、np.logspace()的使用和区别_秋天-CSDN博客
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
下文链接:https://blog.csdn.net/duanlianvip/article/details/100102797
当然也有一些本人个人的理解,作为补充。

初学tensorflow,nump 工具包,经常遇到range()、np.arange()、np.linspace()、np.logspace()一系列的函数,并且这几个函数看起来还长的差不多,虽然实现的功能看起来挺相似,但是他们之间还是有很多的区别。

为了解决上述困惑,做个笔记,把这4个函数放到一起对比,以方便温故知新。

本期目录导航

  • 一、range ([start:int],stop:int,[step:int])
  • 二、np.arange ([start=None], stop=None, [step=None], dtype=None)
  • 三、np.linspace (start, stop, num=50, endpoint=True, retstep=False, dtype=None)
  • 四、np.logspace (start, stop, num=50, endpoint=True, base=10.0, dtype=None)
  • 五、list 与 numpy.ndarray区别
  • 六、ndarray 和list 相互转换
  • 七、python中的 list和array 的不同之处

一、range ([start:int],stop:int,[step:int])

range(),从数值范围创建数组,

  1. range()是Python自带的函数。
  2. 生成一个从start(包含)到stop(不包含),以step为步长的序列。返回一个list对象。
  3. start默认值为0,选填;stop是必填;step默认值为1,选填。 start、stop、step均须为整型。
  4. 只能生成整型的序列。

从数值范围[a,b)创建数组,不加严谨地写作[start,stop),即左闭右开的区间

程序验证:

二、np.arange ([start=None], stop=None, [step=None], dtype=None)

补充: numpy 包中的使用 arange 函数,从数值范围创建数组,并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)
  1. np.arange()属于numpy模块。
  2. 生成一个从start(包含)到stop(不包含),以step为步长的序列。返回一个ndarray对象。
  3. 可以生成整型、浮点型序列,毫无压力。
  4. 当step参数为非整数时(如step=0.1),结果往往不一致。对于这些情况,最好使用“linspace()”函数。

从数值范围[a,b)创建数组,不加严谨地写作[start,stop),即左闭右开的区间

参数含义:

  • start:数值型,可选填。包含此值。默认为0。
  • stop:数值型,必填。不包含此值。除非step的值不是整数,浮点舍入会影响“out”的长度。
  • step:数值型,可选填。默认为1,如果步长有指定,则start必须给出来。
  • dtype:数据类型。输出的array数据类型。如果未指定dtype,则输出的array类型由其它的输入参数决定。
  • start、stop、step若任一个为浮点型,那么都会生成一个浮点型序列。

程序验证:

三、np.linspace (start, stop, num=50, endpoint=True, retstep=False, dtype=None)

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
  • 指定在 start到stop的均分数值(等差数列)。
  • start:不可缺省。
  • stop:有时包含,有时不包含,根据endpoint来选择,默认包含
  • num:指定均分的数量,默认为50。
  • endpoint:布尔值,可选,默认为True,默认包含。包含stop,就True,不包含就False。
  • retstep:布尔值,可选,默认为False。如果为True,返回值和步长
  • dtype:输出数据类型,可选。如果不指定,则根据前面参数的数据类型

程序验证:

四、np.logspace (start, stop, num=50, endpoint=True, base=10.0, dtype=None)

numpy.logspace 函数用于创建一个等比数列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

参数

  • start:float类型,基底base的start次幂作为左边界

  • stop:float类型,基底base的stop次幂作为右边界

  • num:指定等比数值的数量,默认为50

  • endpoint:布尔值,可选,默认为True。包含stop就True,不包含就False

  • base:float类型,选填,基底

  • dtype:输出数据类型。

返回值:ndarray类型


logspace()函数,等价于如下代码:

y = np.linspace(start, stop, num=num, endpoint=endpoint)
power(base, y).astype(dtype)

程序验证:

五、list 与 numpy.ndarray区别

上述四个函数,range()返回值为list类型,其余为ndarray类型,看着差不多,这两种类型有什么区别呢?

python中的二维数组,主要有 list(列表) 和 numpy.ndarray(多维数组) 两种, 两种的区别主要体现在numpy.ndarray 支持更多的索引方式,下面通过代码来看一下两种数据类型索引方式的区别:

对a和b的元素进行访问:

两者区别:

报错:list indices must be integers or slices,not tuple
翻译:列表索引必须是整数或片,不是元组

可以看到numpy.ndarray 比list的访问方式更灵活.

六、ndarray 和list 相互转换

  • 在处理数据时,可以通过np.array() 方便的将列表(list)转化为numpy.ndarray,
  • 当然处理完后还可以通过tolist() 将ndarray再转回列表(list),从而方便删除或添加元素。
# list 转 numpynp.array(list1)# ndarray 转 listarray1.tolist()

演示:

参考:

  • http://www.mamicode.com/info-detail-2449535.html
  • https://blog.csdn.net/ui_shero/article/details/78881067
  • https://www.jianshu.com/p/f8e6a0a6399f

七、python中的 list和array 的不同之处

python 中 array 和 list 的区别 - https://zhuanlan.zhihu.com/p/261636002?utm_source=wechat_session

  • List: 列表

python 中的 list 是 python 的内置数据类型,list 中的数据类型不必相同
在 list 中保存的是数据的存放的地址,即指针,并非数据。

  • array:数组

array() 是 numpy 包中的一个函数,array 里的元素都是同一类型,数据类型要相同

  • ndarray:多维数组

是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。

ndarray 的一个特点是同构:即其中所有元素的类型必须相同

【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同相关推荐

  1. python中range和arange的区别_Python3中range , arange 和linspace 的异同

    python3中range , arange 和linspace 的相同点 这三个函数的相同点是: 都可以生成指定数量步长相同的一组数据,而且生成的对象都可以被迭代! 如果只是需要一组指定范围内步长相 ...

  2. 【ML】range、arange和linspace函数

    [ML]range.arange和linspace函数 区别 python的range函数 举例 numpy的arange函数 举例 numpy的linspace函数 区别 range函数属于pyth ...

  3. python中range和arange的区别_Python——range()、xrange()和np.arange()应用说明

    (1)range()和xrange()函数在 python 2.x 版本中,同时存在range()和xrange()函数,其中,range()返回值是一个列表,xrange()返回值是一个迭代值: 在 ...

  4. python Numpy 中的矩阵向量乘法(np.multiply()、np.dot()、np.matmul() 和 星号(*)、@)

    python Numpy 中的矩阵向量乘法 总结 1. 对于 np.array 对象 1.1 元素乘法 用 a*b 或 np.multiply(a,b) 1.2 矩阵乘法 用 np.dot(a,b) ...

  5. python中range和arange的区别_浅谈Python中range与Numpy中arange的比较

    本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明. 1. range与arange的比较 (1)相同点:A.参数的可选性. ...

  6. python中 range 与 arange 的用法与区别:

    range() 和 arange() 函数都可以用于生成等间隔(等差)的序列,都可用于迭代. 两者的函数原型都有三个参数: range([start,] stop, [step]) arange([s ...

  7. python 中arange函数_浅谈Python中range与Numpy中arange的比较

    本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明. 1. range与arange的比较 (1)相同点:A.参数的可选性. ...

  8. Python – numpy.arange()

    Being a linear sequence generator, the numpy.arange() function is used to generate a sequence of num ...

  9. [转载] python numpy 子数组_Python学习笔记3:Numpy入门

    参考链接: Python中的numpy.logaddexp2 参考<Python:数据科学手册>一书,仅作个人学习及记录使用,若有侵权,请联系后台删除. 1 理解Python中的数据类型 ...

  10. python Numpy模块汇总(字母排序) 备注:内容很多,用control/command(Mac系统)+ F可以在网页内关键词查找,希望你能找到想要的内容

    @[TOC] (目录) Numpy Numpy官网:https://numpy.org/devdocs/index.html Numpy的主要对象是同构多维数组.它是一个元素表(通常是数字),所有类型 ...

最新文章

  1. c# list集合根据某个字段去重_完美解决c# distinct不好用的问题
  2. python读文件操作-python 之文件操作
  3. ios键盘横屏_cocos2d 3.2版本IOS因键盘引起横竖屏问题
  4. flutter 环境搭建
  5. 最近实在抽不出时间更新博客
  6. 当心币圈高仿号!也别指望AI,它有心无力
  7. 在线等比数列项数生成器
  8. 报名系统 服务器,全国人事考试服务平台系统报名步骤(带报名入口)
  9. 异数OS-星星之火(二)--远程实验室注册开放
  10. numpy:求解小游戏概率
  11. 分享:一个轻量级的企业Wiki和团队知识分享平台CMS
  12. Android 关于微信分享提示签名不对的问题
  13. 天津天狮学院关于2021年天狮专升本新生入学缴费有关事项的通知
  14. 求水洼的问题——深度优先算法
  15. 神奇的幻方(洛谷)c语言
  16. imx6ul uart8路串口调试(代码)
  17. PAT乙级 1070 结绳
  18. 一套基于增强型8051内核的应用裸机框架
  19. 【C语言】goto语句以及strcmp和system的学习
  20. java硬件环境是什么

热门文章

  1. wxWidgets:wxToolbook类用法
  2. boost::ratio_string相关的测试程序
  3. boost::python模块使用通用函数或 ufunc 的示例
  4. boost::program_options模块实现一个用户定义的类来解析 特定机制——不是默认使用的 iostream 操作的测试程序
  5. boost::multiprecision模块complex128相关的测试程序
  6. boost::histogram::accumulators::count用法的测试程序
  7. boost::geometry::for_each_coordinate用法的测试程序
  8. boost::fibers模块实现single stream的测试程序
  9. GDCM:gdcm::XMLPrinter的测试程序
  10. VTK:Qt之RenderWindowNoUiFile