📅  最后修改于: 2023-12-03 14:44:48.687000             🧑  作者: Mango
在机器学习、数据分析等领域,我们经常需要创建一些具有一定范围内值的数组,例如 0 到 1 的随机数,或者从一维数组中取出一段特定范围的值。numpy 库提供了非常丰富的函数来帮助我们创建这样的数组。下面我们就来学习下最常用的几种方式。
linspace 函数可以用来在指定的范围内返回等间隔的数字。其语法如下:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数说明:
下面实现一个从 0 到 1 的等间隔数字列表:
import numpy as np
arr = np.linspace(0, 1, num=11)
print(arr)
输出结果:
[0. , 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1. ]
可以看到,linspace 函数返回了从 0 到 1 共 11 个等间隔数字,包含了 0 和 1。
arange 函数可以用来返回给定范围内的等距离数字。其语法如下:
numpy.arange(start, stop, step, dtype=None)
参数说明:
下面实现一个从 0 到 1 的等距离数字列表:
import numpy as np
arr = np.arange(0, 1, 0.1)
print(arr)
输出结果:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
random 函数可以用来生成指定形状的随机数数组。其语法如下:
numpy.random.random(size=None)
参数说明:
下面实现一个 1x10 的随机数数组:
import numpy as np
arr = np.random.random(size=(1, 10))
print(arr)
输出结果:
[[0.98525041 0.54083635 0.47173859 0.73918813 0.64848085 0.95444038
0.56364346 0.74016631 0.16165958 0.25727697]]
可以看到,random 函数生成了一个形状为 (1, 10) 的随机数数组。
slice 函数可以用来从一维数组中取出一段特定范围的值。其语法如下:
numpy.slice(arr, start, stop, step=None)
参数说明:
下面实现从一维数组中取出 2-5 索引范围内的值:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
s = slice(2, 5)
print(arr[s])
输出结果:
[3 4 5]
可以看到,slice 函数成功取出了一维数组中索引范围为 2-5 的数值。
以上是 numpy 库中创建具有范围内值的数组的几种方式,分别是:
根据实际需求可以选择不同的方式创建数组,以提高代码的运行效率和代码的可读性。