区分range() , np.arange() , np.linspace()
Posted wyy1480
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区分range() , np.arange() , np.linspace()相关的知识,希望对你有一定的参考价值。
content:
- range()
- np.arange()
- np.linspace()
一.range(start, stop, step)
1.range() 为 python 自带函数
2.生成一个从start(包含)到stop(不包含),以step为步长的序列。返回一个 list 对象
- range(stop) 返回 range object
- range(start, stop[, step]) 返回 range object
3.start默认为0,stop是必须的,step默认为1,可正可负。
- 例:range(i, j) 生成 i, i+1, i+2, ..., j-1.
- 例:range(4) 生成 0, 1, 2, 3.
4.只能生成整型的序列
5.举例
range(6)
range(0, 6)
for i in range(6):
print(i)
0
1
2
3
4
5
range(10.0) #浮点型不能实现哦o(^▽^)o
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-50-2abe667105db> in <module>()
----> 1 range(10.0) #浮点型不能实现哦o(^▽^)o
TypeError: ‘float‘ object cannot be interpreted as an integer
range(1,6)
range(1, 6)
for i in range(6):print (i)
0
1
2
3
4
5
range(1,6,3)
range(1, 6, 3)
for i in range(1,6,3):print(i)
1
4
## 二. np.arange([start,] stop[, step])
1.np.arange() 在 numpy 模板中
2.生成一个从start(包含)到stop(不包含),以step为步长的序列。返回一个 ndarray 对象
- start : 数值, 可选。包含此值,默认为0.
- stop : 数值,必须。不包含此值, 除非“step”不是整数,浮点舍入会影响“out”的长度
- step : 数值, 可选。默认为1,如果步长有指定,则start必须给出来
- dtype : 数据类型。输出array的数据类型。 If
dtype
is not given, infer the data type from the other input arguments.
4.可生成整型、浮点型序列,毫无压力
5.当使用非整数步骤(如0.1)时,结果往往不一致。对于这些情况,最好使用‘linspace’。
6.举例
import numpy as np
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(10.0)
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
np.arange(1,10)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(1,10,2)
array([1, 3, 5, 7, 9])
np.arange(1,10,2.0)
array([ 1., 3., 5., 7., 9.])
三个参数,如果任一为浮点型,那么都会生成一个浮点型序列。
三.拓:linspace
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.linspace(1,10) #默认生成50个,包含stop:10
array([ 1. , 1.18367347, 1.36734694, 1.55102041,
1.73469388, 1.91836735, 2.10204082, 2.28571429,
2.46938776, 2.65306122, 2.83673469, 3.02040816,
3.20408163, 3.3877551 , 3.57142857, 3.75510204,
3.93877551, 4.12244898, 4.30612245, 4.48979592,
4.67346939, 4.85714286, 5.04081633, 5.2244898 ,
5.40816327, 5.59183673, 5.7755102 , 5.95918367,
6.14285714, 6.32653061, 6.51020408, 6.69387755,
6.87755102, 7.06122449, 7.24489796, 7.42857143,
7.6122449 , 7.79591837, 7.97959184, 8.16326531,
8.34693878, 8.53061224, 8.71428571, 8.89795918,
9.08163265, 9.26530612, 9.44897959, 9.63265306,
9.81632653, 10. ])
np.linspace(1,10,endpoint=False) #默认生成50个,不包含stop:10
array([ 1. , 1.18, 1.36, 1.54, 1.72, 1.9 , 2.08, 2.26, 2.44,
2.62, 2.8 , 2.98, 3.16, 3.34, 3.52, 3.7 , 3.88, 4.06,
4.24, 4.42, 4.6 , 4.78, 4.96, 5.14, 5.32, 5.5 , 5.68,
5.86, 6.04, 6.22, 6.4 , 6.58, 6.76, 6.94, 7.12, 7.3 ,
7.48, 7.66, 7.84, 8.02, 8.2 , 8.38, 8.56, 8.74, 8.92,
9.1 , 9.28, 9.46, 9.64, 9.82])
np.linspace(2.0, 3.0, num=5) #指定生成5个,包含stop:10
array([ 2. , 2.25, 2.5 , 2.75, 3. ])
np.linspace(2,3,num=5)
array([ 2. , 2.25, 2.5 , 2.75, 3. ])
np.linspace(2.0, 3.0, num=5, endpoint=False)
array([ 2. , 2.2, 2.4, 2.6, 2.8])
np.linspace(2.0, 3.0, num=5, retstep=True)
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
以上是关于区分range() , np.arange() , np.linspace()的主要内容,如果未能解决你的问题,请参考以下文章
TypeError: 'range' object does not support item assignment处理方法