参考:
https://www.cnblogs.com/onemorepoint/p/8126181.htmlhttps://www.cnblogs.com/quietwalk/p/8003862.htmlrange(start, end, step),返回一个list对象,起始值为start,终止值为end,但不含终止值,步长为step。只能创建int型list。
参数含义: start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5); end:计数到end结束,但不包括end。例如:range(0, 5)是[0, 1, 2, 3, 4],没有5; step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。 函数返回的是一个range object。
>>> range(0,5) #生成一个range object,而不是[0,1,2,3,4] range(0, 5) >>> c = [i for i in range(0,5)] #从0 开始到4,不包括5,默认的间隔为1 >>> c [0, 1, 2, 3, 4] >>> c = [i for i in range(0,5,2)] #间隔设为2 >>> c [0, 2, 4] >>>range(1,5) range(1,5) >>>tuple(range(1, 5)) (1, 2, 3, 4) >>>list(range(1, 5)) [1, 2, 3, 4] >>>r = range(1, 5) >>>type(r) <class 'range'> >>>for i in range(1, 5): ... print(i) 1 2 3 4 >>>range(1, 5, 2) >>>for i in range(1, 5, 2): ... print(i) 1 3注意:range()不支持步长为小数:
>>>range(1, 5, .1) # range中的setp 不能使float Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integernp.arange()支持步长为小数:
>>>np.arange(1, 5, .5) array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])range()返回的是range object,而np.arange()返回的是numpy.ndarray() 。
range仅可用于迭代,而np.arange作用远不止于此,它是一个数组,可被当做向量使用。
range()不支持步长为小数,np.arange()支持步长为小数。
两者都可用于迭代。
两者都有三个参数,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列 。
某种意义上,和STL中由迭代器组成的区间是一样的,即左闭右开的区间。[first, last)或者不加严谨地写作[first:step:last)
NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,该对象由两部分组成: 实际的数据; 描述这些数据的元数据;
大部分的数组操作仅仅是修改元数据部分,而不改变其底层的实际数据。数组的维数称为秩,简单来说就是如果你需要获取数组中一个特定元素所需的坐标数,如a是一个2×3×4的矩阵,你索引其中的一个元素必须给定三个坐标a[x,y,z],故它的维数就是3。而轴可以理解为一种对数组空间的分割,以数组a为例,如果我们以0为轴,那么a可以看成是一个由两个元素构成的数组,其中每个元素都是一个3×4的数组。
我们可以直接将数组看作一种新的数据类型,就像list、tuple、dict一样,但数组中所有元素的类型必须是一致的,Python支持的数据类型有整型、浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy中添加了许多其他的数据类型,如bool、inti、int64、float32、complex64等。同时,它也有许多其特有的属性和方法。