📜  np.arange 和 np.linspace 的区别 - Python (1)

📅  最后修改于: 2023-12-03 15:33:12.360000             🧑  作者: Mango

np.arange 和 np.linspace 的区别 - Python

在NumPy中,np.arangenp.linspace都是用于生成数字序列的函数,但是它们之间还有一些显著的区别。

np.arange

np.arange函数返回一个数组,其元素是在指定范围内以等间隔的方式生成的数值序列数组,该函数的函数原型如下:

np.arange([start,] stop[, step,], dtype=None)

其中start表示起始值(默认值为0),stop表示终止值(不包含),step表示步长(默认值为1),dtype表示返回数组的数据类型(如果未提供,则根据其他参数自动推断数据类型)。

下面是一些使用np.arange函数的示例:

import numpy as np

# 生成0到9的数字序列,步长为1
a = np.arange(10)
print(a)  # [0 1 2 3 4 5 6 7 8 9]

# 生成2到10的数字序列,步长为2
b = np.arange(2, 11, 2)
print(b)  # [ 2  4  6  8 10]

# 生成2到10的数字序列,步长为浮点型数值
c = np.arange(2, 10, 0.5)
print(c)  # [2.  2.5 3.  3.5 4.  4.5 5.  5.5 6.  6.5 7.  7.5 8.  8.5 9.  9.5]

np.linspace

np.linspace函数返回一个数组,其元素是在指定范围内以等差或等比的方式生成的数值序列数组,该函数的函数原型如下:

np.linspace(start, stop, num, endpoint=True, retstep=False, dtype=None)

其中start表示起始值,stop表示终止值,num表示生成的数字数量(默认值为50),endpoint表示是否包含终止值(默认为True),retstep表示是否返回序列的步长,默认为False,dtype表示返回数组的数据类型(如果未提供,则根据其他参数自动推断数据类型)。

下面是一些使用np.linspace函数的示例:

import numpy as np

# 等差数列,生成0到10的数字序列,包含终止值
a = np.linspace(0, 10, 11)
print(a)  # [ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

# 等比数列,生成1到10000的数字序列,包含终止值
b = np.linspace(1, 10000, 20, endpoint=True, retstep=True)
print(b[0])  # [1.00e+00 5.26e+02 1.05e+03 1.57e+03 2.10e+03 2.63e+03 3.16e+03 3.68e+03 4.21e+03 4.74e+03 5.26e+03 5.79e+03 6.32e+03 6.84e+03 7.37e+03 7.89e+03 8.42e+03 8.95e+03 9.47e+03 1.00e+04]
print(b[1])  # 526.3157894736842

总结
  • np.arange函数生成的是以等间隔方式的数字序列数组;
  • np.linspace函数生成的是以等差或等比方式的数字序列数组;
  • 两者函数在参数使用上略有不同,具体应根据需求使用。