问题
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,其提供了更加丰富的方法;