用不同范围内的随机数填充可变长度的一维 numpy 数组的有效方法
Efficient way to fill a 1D numpy array of variable length with random numbers in different ranges
我需要用 [1,2,...,n]、[2,3,...,n]、[3,4, ...,n], ..., [n-1,n] 和 [n] 分别。我正在寻找这个问题的矢量化解决方案。非常感谢。
您可以使用 numpy.random.randint,为此:
import numpy as np
n = 10
res = np.random.randint(np.arange(0, n), n)
print(res)
输出
[3 3 2 6 6 7 6 8 9 9]
Generate a 1 by 3 array with 3 different lower bounds
np.random.randint([1, 5, 7], 10)
array([9, 8, 7]) # random
最新的替代方法是使用 integers:
import numpy as np
n = 10
rng = np.random.default_rng()
res = rng.integers(np.arange(0, n), n)
print(res)
注意:以上示例从0
开始,选择最适合您问题的区间。
我需要用 [1,2,...,n]、[2,3,...,n]、[3,4, ...,n], ..., [n-1,n] 和 [n] 分别。我正在寻找这个问题的矢量化解决方案。非常感谢。
您可以使用 numpy.random.randint,为此:
import numpy as np
n = 10
res = np.random.randint(np.arange(0, n), n)
print(res)
输出
[3 3 2 6 6 7 6 8 9 9]
Generate a 1 by 3 array with 3 different lower bounds
np.random.randint([1, 5, 7], 10) array([9, 8, 7]) # random
最新的替代方法是使用 integers:
import numpy as np
n = 10
rng = np.random.default_rng()
res = rng.integers(np.arange(0, n), n)
print(res)
注意:以上示例从0
开始,选择最适合您问题的区间。