NumPy 包含许多函数,可用于从给定的数值范围创建数组。以下是用于此目的的最常用函数的列表:
功能 | 说明 |
---|---|
arange() | 返回给定间隔内均匀间隔的值。 |
linspace() | 返回均匀间隔的数字 在指定的时间间隔内。 |
logspace() | 返回在对数刻度上均匀间隔的数字。 |
让我们详细讨论这些函数:
numpy.arange() 函数
numpy.arange() 函数返回给定间隔内均匀间隔的值。这些值在 [start, stop) 范围内以指定的步长生成。
语法
numpy.arange(start, stop, step, dtype=None)
参数
start | 可选。 指定间隔的开始(含)。默认值为 0。 |
stop | 必填。 指定间隔结束(不包括)。 |
step | 可选。 指定步长。默认值为 1。 |
dtype | 可选。 指定输出数组的类型。如果未给出 dtype,则从其他输入参数推断数据类型。 |
示例:
下面的示例显示如何使用arange()函数创建数组。
import numpy as np
#使用范围[10,55)创建数组并且步长=5
Arr1 = np.arange(10,55,5)
print("Arr1 为:", Arr1)
#使用范围[10,16)创建数组并且步长 = 1 且 dtype=float
Arr2 = np.arange(10,16,dtype=float)
print("Arr2 为:", Arr2)
#重塑 Arr2
Arr3 = Arr2.reshape(2,3)
print("Arr3 为:\n", Arr3)
上述代码的输出将是:
Arr1 为: [10 15 20 25 30 35 40 45 50]
Arr2 为: [10. 11. 12. 13. 14. 15.]
Arr3 为:
[[10. 11. 12.]
[13. 14. 15.]]
numpy.linspace()函数
numpy.linspace() 函数返回指定间隔内均匀间隔的值。这些值是在 [start, stop] 范围内以指定数量的样本生成的。可以选择排除间隔的端点。
语法
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数
start | 必填。 指定序列的起始值。 |
stop | 必填。 指定序列的结束值,除非端点为False。在这种情况下,序列由除最后一个 num + 1 个均匀间隔样本之外的所有样本组成,因此排除了 stop。请注意,当端点为 False 时,步长会发生变化。 |
num | 可选。 指定要生成的样本数量。默认值为 50。必须为非负数。 |
endpoint | 可选。 指定布尔值。如果为 True,则停止是最后一个样本。否则,不包括在内。默认值为 True。 |
retstep | 可选。 指定布尔值。如果为 True,则返回 (samples, step),其中 step 是样本之间的间距。 |
dtype | 可选。 指定输出数组的类型。如果未给出 dtype,则从其他输入参数推断数据类型。 |
示例:
在下面的示例中,linspace() 函数与不同的参数一起使用来创建数组。
import numpy as np
#在给定范围内创建5个样本点
Arr1 = np.linspace(1,5,num=5)
print("Arr1 为:", Arr1)
#当endpoint=False时,(num+1)个样本是生成并返回没有最后一个的样本
Arr2 = np.linspace(1,5,num=5,endpoint=False)
print("Arr2 为:", Arr2)
#当retstep=True时,返回(sample,step)
Arr3 = np.linspace(1,5,num=5,retstep=True)
print("Arr3 为:", Arr3)
上述代码的输出将是:
Arr1 为: [1. 2. 3. 4. 5.]
Arr2 为: [1. 1.8 2.6 3.4 4.2]
Arr3 为: (array([1., 2., 3., 4., 5.]), 1.0)
numpy.logspace() 函数
numpy.logspace() 函数返回在对数刻度上均匀分布的数字。这些值是在 [base ** start、base ** stop] 范围内生成的,具有指定数量的样本。可以选择排除间隔的端点。
语法
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
参数
start | 必填。 指定序列的起始值。起始值为base ** start。 |
stop | 必填。 指定序列的结束值(结束值为base ** end),除非endpoint为False。在这种情况下,num + 1 个值在对数空间的间隔内间隔开,其中除了最后一个(长度为 num 的序列)之外的所有值都会返回。 |
num | 可选。 指定要生成的样本数量。默认值为 50。必须为非负数。 |
endpoint | 可选。 指定布尔值。如果为 True,则停止是最后一个样本。否则,不包括在内。默认值为 True。 |
base | 可选。 指定日志空间的基数。 ln(samples) / ln(base) (或 log_base(samples))中元素之间的步长是统一的。默认值为 10.0。 |
dtype | 可选。 指定输出数组的类型。如果未给出 dtype,则从其他输入参数推断数据类型。 |
示例:
在下面的示例中,logspace() 函数使用不同的参数来创建数组。
import numpy as np
#在给定范围内创建5个样本点
Arr1 = np.logspace(1,2,num=5)
print("Arr1 为:", Arr1)
#当endpoint=False时,(num+1)个样本是生成并返回没有最后一个的样本
Arr2 = np.logspace(1,2,num=5,endpoint=False)
print("Arr2 为:", Arr2)
#使用base=2.0
Arr3 = np.logspace(1,2,num=5,base=2.0)
print("Arr3 为:", Arr3)
上述代码的输出将是:
Arr1 为: [10. 17.7827941 31.6227766 56.23413252 100. ]
Arr2 为: [10. 15.84893192 25.11886432 39.81071706 63.09573445]
Arr3 为: [2. 2.37841423 2.82842712 3.36358566 4. ]