【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同
【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(),从数值范围创建数组,
- range()是Python自带的函数。
- 生成一个从start(包含)到stop(不包含),以step为步长的序列。返回一个list对象。
- start默认值为0,选填;stop是必填;step默认值为1,选填。 start、stop、step均须为整型。
- 只能生成整型的序列。
从数值范围[a,b)创建数组,不加严谨地写作[start,stop),即左闭右开的区间
程序验证:
二、np.arange ([start=None], stop=None, [step=None], dtype=None)
补充: numpy 包中的使用 arange 函数,从数值范围创建数组,并返回 ndarray 对象,函数格式如下:
numpy.arange(start, stop, step, dtype)
- np.arange()属于numpy模块。
- 生成一个从start(包含)到stop(不包含),以step为步长的序列。返回一个ndarray对象。
- 可以生成整型、浮点型序列,毫无压力。
- 当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不同相关推荐
- python中range和arange的区别_Python3中range , arange 和linspace 的异同
python3中range , arange 和linspace 的相同点 这三个函数的相同点是: 都可以生成指定数量步长相同的一组数据,而且生成的对象都可以被迭代! 如果只是需要一组指定范围内步长相 ...
- 【ML】range、arange和linspace函数
[ML]range.arange和linspace函数 区别 python的range函数 举例 numpy的arange函数 举例 numpy的linspace函数 区别 range函数属于pyth ...
- python中range和arange的区别_Python——range()、xrange()和np.arange()应用说明
(1)range()和xrange()函数在 python 2.x 版本中,同时存在range()和xrange()函数,其中,range()返回值是一个列表,xrange()返回值是一个迭代值: 在 ...
- 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) ...
- python中range和arange的区别_浅谈Python中range与Numpy中arange的比较
本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明. 1. range与arange的比较 (1)相同点:A.参数的可选性. ...
- python中 range 与 arange 的用法与区别:
range() 和 arange() 函数都可以用于生成等间隔(等差)的序列,都可用于迭代. 两者的函数原型都有三个参数: range([start,] stop, [step]) arange([s ...
- python 中arange函数_浅谈Python中range与Numpy中arange的比较
本文先比较range与arange的异同点,再详细介绍各自的用法,然后列举了几个简单的示例,最后对xrange进行了简单的说明. 1. range与arange的比较 (1)相同点:A.参数的可选性. ...
- Python – numpy.arange()
Being a linear sequence generator, the numpy.arange() function is used to generate a sequence of num ...
- [转载] python numpy 子数组_Python学习笔记3:Numpy入门
参考链接: Python中的numpy.logaddexp2 参考<Python:数据科学手册>一书,仅作个人学习及记录使用,若有侵权,请联系后台删除. 1 理解Python中的数据类型 ...
- python Numpy模块汇总(字母排序) 备注:内容很多,用control/command(Mac系统)+ F可以在网页内关键词查找,希望你能找到想要的内容
@[TOC] (目录) Numpy Numpy官网:https://numpy.org/devdocs/index.html Numpy的主要对象是同构多维数组.它是一个元素表(通常是数字),所有类型 ...
最新文章
- c# list集合根据某个字段去重_完美解决c# distinct不好用的问题
- python读文件操作-python 之文件操作
- ios键盘横屏_cocos2d 3.2版本IOS因键盘引起横竖屏问题
- flutter 环境搭建
- 最近实在抽不出时间更新博客
- 当心币圈高仿号!也别指望AI,它有心无力
- 在线等比数列项数生成器
- 报名系统 服务器,全国人事考试服务平台系统报名步骤(带报名入口)
- 异数OS-星星之火(二)--远程实验室注册开放
- numpy:求解小游戏概率
- 分享:一个轻量级的企业Wiki和团队知识分享平台CMS
- Android 关于微信分享提示签名不对的问题
- 天津天狮学院关于2021年天狮专升本新生入学缴费有关事项的通知
- 求水洼的问题——深度优先算法
- 神奇的幻方(洛谷)c语言
- imx6ul uart8路串口调试(代码)
- PAT乙级 1070 结绳
- 一套基于增强型8051内核的应用裸机框架
- 【C语言】goto语句以及strcmp和system的学习
- java硬件环境是什么
热门文章
- wxWidgets:wxToolbook类用法
- boost::ratio_string相关的测试程序
- boost::python模块使用通用函数或 ufunc 的示例
- boost::program_options模块实现一个用户定义的类来解析 特定机制——不是默认使用的 iostream 操作的测试程序
- boost::multiprecision模块complex128相关的测试程序
- boost::histogram::accumulators::count用法的测试程序
- boost::geometry::for_each_coordinate用法的测试程序
- boost::fibers模块实现single stream的测试程序
- GDCM:gdcm::XMLPrinter的测试程序
- VTK:Qt之RenderWindowNoUiFile