📌  相关文章
📜  numpy 创建具有范围内值的数组 (1)

📅  最后修改于: 2023-12-03 14:44:48.687000             🧑  作者: Mango

numpy 创建具有范围内值的数组

在机器学习、数据分析等领域,我们经常需要创建一些具有一定范围内值的数组,例如 0 到 1 的随机数,或者从一维数组中取出一段特定范围的值。numpy 库提供了非常丰富的函数来帮助我们创建这样的数组。下面我们就来学习下最常用的几种方式。

使用 linspace 函数

linspace 函数可以用来在指定的范围内返回等间隔的数字。其语法如下:

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

参数说明:

  • start:表示范围的起始值。
  • stop:表示范围的结束值。
  • num:表示需要返回的等间隔数字的个数,默认为 50。
  • endpoint:表示是否包含结束值,True 表示包含,False 表示不包含,默认为 True。
  • retstep:表示是否返回等间隔数字之间的步长,True 表示返回,False 表示不返回,默认为 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 函数

arange 函数可以用来返回给定范围内的等距离数字。其语法如下:

numpy.arange(start, stop, step, dtype=None)

参数说明:

  • 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 函数

random 函数可以用来生成指定形状的随机数数组。其语法如下:

numpy.random.random(size=None)

参数说明:

  • size:表示数组的形状。

下面实现一个 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 函数

slice 函数可以用来从一维数组中取出一段特定范围的值。其语法如下:

numpy.slice(arr, start, stop, step=None)

参数说明:

  • arr:要操作的一维数组。
  • start:表示范围的起始索引。
  • stop:表示范围的结束索引(不包含)。
  • step:表示取值的步长大小。

下面实现从一维数组中取出 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 库中创建具有范围内值的数组的几种方式,分别是:

  • linspace 函数
  • arange 函数
  • random 函数
  • slice 函数

根据实际需求可以选择不同的方式创建数组,以提高代码的运行效率和代码的可读性。