gpt4 book ai didi

Python:如何根据特定分布创建整数列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:40 24 4
gpt4 key购买 nike

python/numpy/scipy 中是否有一种方法可以动态创建特定范围内的整数列表,该列表可以变化,并且其中的数字根据分布进行排序,例如标称(高斯)、指数、线性。我想象出一些东西

like for range 3:

[1,2,3]
[2,1,2]
[1,2,1]
[3,2,1]


for range 4:

[1,2,3,4]
[2,1,1,2]
[1,2,2,1]
[4,3,2,1]

for range 5:

[1,2,3,4,5]
[2,1,0,1,2]
[1,2,3,2,1]
[5,4,3,2,1]

最佳答案

我们可以使用np.minimum使用一些技巧来生成第三行的对称版本。第二行只是从 3 中减去第三行的补码。第一行和最后一行分别是从 1n 的范围及其翻转版本。

因此,在对这些行进行行堆叠以获得 2D 数组之后,我们将采用一种方法,如下所示 -

def ranged_arr(n):
r = np.arange(n)+1
row3 = np.minimum(r,r[::-1])
return np.c_[r, 3-row3, row3, r[::-1]].T

我们还可以使用np.row_stack来进行堆叠 -

np.row_stack((r, 3-row3, row3, r[::-1]))

示例运行 -

In [106]: ranged_arr(n=3)
Out[106]:
array([[1, 2, 3],
[2, 1, 2],
[1, 2, 1],
[3, 2, 1]])

In [107]: ranged_arr(n=4)
Out[107]:
array([[1, 2, 3, 4],
[2, 1, 1, 2],
[1, 2, 2, 1],
[4, 3, 2, 1]])

In [108]: ranged_arr(n=5)
Out[108]:
array([[1, 2, 3, 4, 5],
[2, 1, 0, 1, 2],
[1, 2, 3, 2, 1],
[5, 4, 3, 2, 1]])

关于Python:如何根据特定分布创建整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44697856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com