gpt4 book ai didi

python - 生成一个数组,每行和列中包含从 1 到 9 的随机数

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

我目前有以下 R 代码:

m <- matrix(NA, nrow = 9, ncol = 9)
for (i in 1:9){
m[i,] <- sample(9)
}

我是 Python 新手,希望重现这一点,但每列和每行都有一个从 1 到 9 的随机样本,没有重复。谁能告诉我正确的做法吗?

最佳答案

您可以使用 python 的 numpy 库。

from numpy.random import randint

low = 1
high = 10
nrow = 9
ncol = 9

m = randint(low,high,size = (nrow,ncol))

print(m)


[[9 9 1 3 4 1 7 9 1]
[8 1 2 9 1 6 5 6 1]
[2 5 8 7 6 8 4 6 8]
[7 1 8 7 4 8 1 3 2]
[9 1 8 7 6 3 4 7 4]
[5 8 2 4 5 9 8 6 3]
[9 9 7 6 5 5 9 8 2]
[3 3 5 5 3 1 8 9 5]
[2 9 5 6 5 9 6 7 9]]

这将创建一个 9 行 9 列的 numpy 矩阵,其中包含 [low,high) 区间内的随机整数

您可以查看该函数的手册: https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.random.randint.html

如果您希望每一行都有唯一的值,那么您可以使用以下方法:

import numpy as np

m = np.zeros((9,9))
vals = np.arange(1,10)
for i in range(0,9):
m[i,:] = np.random.choice(vals,size=9,replace=False)
print(m.astype(int))

[[8 9 4 3 6 1 7 5 2]
[1 3 8 6 9 2 7 5 4]
[4 1 9 6 8 2 7 5 3]
[7 8 6 3 5 2 9 1 4]
[3 8 7 9 5 4 2 1 6]
[1 2 5 8 7 3 4 6 9]
[8 5 4 9 1 3 6 7 2]
[8 4 9 6 1 5 3 2 7]
[3 2 4 5 6 1 8 9 7]]

要对每一列执行相同的操作,您可以将 for 循环更改为:

for i in range(0,9):
m[:,i] = np.random.choice(vals,size=9,replace=False)

关于python - 生成一个数组,每行和列中包含从 1 到 9 的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53140830/

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