📜  生成数组范围 (1)

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

生成数组范围

在编写程序时,我们经常需要生成一定范围内的数组。这时,我们可以使用一些函数来实现。本文介绍了几种在不同情况下生成数组范围的方法。

生成连续的整数数组

当我们需要生成一定范围内的连续整数数组时,可以使用 range 函数。该函数返回指定范围内的连续整数序列。

arr = list(range(start, end+1, step))

其中,start 表示序列的起始值,end 表示序列的结束值,step 表示序列中相邻两个元素之间的步长(默认值为 1)。需要注意的是,end 的范围是左闭右开的。

例如,生成 1 到 10 的整数数组:

arr = list(range(1, 11))
print(arr)  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

如果需要生成步长为 2 的数组:

arr = list(range(1, 11, 2))
print(arr)  # [1, 3, 5, 7, 9]
生成等差数列

在一定范围内生成等差数列可以使用 numpy 库中的 arangelinspace 函数。其中,arange 函数返回指定范围、步长的等差数列,linspace 函数返回指定数量的等差数列。

import numpy as np

arr = np.arange(start, end, step)
arr = np.linspace(start, end, num)

例如,生成 1 到 10 的等差数列:

arr = np.arange(1, 11)
print(arr)  # [ 1  2  3  4  5  6  7  8  9 10]

如果需要生成 10 个元素的等差数列:

arr = np.linspace(1, 10, 10)
print(arr)  # [ 1.          2.11111111  3.22222222  4.33333333  5.44444444  6.55555556  7.66666667  8.77777778  9.88888889 10.        ]
随机生成数组

当需要随机生成数组时,可以使用 numpy 库中的 random 模块。其中常用的有 randintrandrandnuniform 函数。

import numpy as np

arr = np.random.randint(low, high, size)
arr = np.random.rand(size)
arr = np.random.randn(size)
arr = np.random.uniform(low, high, size)

例如,生成 10 个 1 到 100 之间的随机整数:

arr = np.random.randint(1, 100, 10)
print(arr)  # [45 58 35  2 39 22 83 30 47 35]

如果需要生成 10 个在 0 到 1 之间的随机浮点数:

arr = np.random.rand(10)
print(arr)  # [0.62799207 0.388743   0.14059775 0.58334365 0.2714898  0.27396179 0.93727271 0.91115059 0.8525549  0.91868357]

以上就是几种常见的生成数组范围的方法。不同的情况下可以选择合适的方法来生成需要的数组。