Numpy深入剖析Numpy.arange()与range()的区别

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy深入剖析Numpy.arange()与range()的区别相关的知识,希望对你有一定的参考价值。

问题

Numpy是一个极其常用的而且十分好用的第三方库,特别适用于处理各种多维数组,提供了非常多的方法。arange是生成数组的一种方法,与Python自带的range功能十分相似,那么二者的区别是什么呢?

方法

import numpy as np

a = range(10)
print(a) # range(0, 10)
print(list(a))  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

b = range(1, 10)
print(list(b)) # [1, 2, 3, 4, 5, 6, 7, 8, 9]

c = range(1, 10, 2)
print(list(c)) # [1, 3, 5, 7, 9]

# range的步长不支持小数
# range(1, 10, 0.1)

d = np.arange(10)
print(type(a), type(d), d) # <class 'range'> <class 'numpy.ndarray'> [0 1 2 3 4 5 6 7 8 9]

e = np.arange(1, 10, 1.5) 
print(e) # [1.  2.5 4.  5.5 7.  8.5]

以上可以看到,主要区别在于:

  • 返回的类型不一样,range()返回的是class ‘range’,而np.arange()返回的是class ‘numpy.ndarray’;
  • range()的步长只能是整数,而np.arange()则不受此限制;
  • 由于np.arange()返回的是ndarray,其提供了更加丰富的方法;

结语

以上是关于Numpy深入剖析Numpy.arange()与range()的区别的主要内容,如果未能解决你的问题,请参考以下文章

python range函数与numpy arange函数

内置范围或 numpy.arange:哪个更有效?

numpy 使用详解

如何使用 numpy.arange() 遍历 -1 和 1 之间的所有数字?

Python3-笔记-numpy学习指南-002-基础

NumPy 从数值范围创建数组