gpt4 book ai didi

python - 使用随机数创建二维数组的简单方法 (Python)

转载 作者:太空狗 更新时间:2023-10-29 18:13:57 25 4
gpt4 key购买 nike

我知道在 Python 中创建一个全为零的 NxN 数组的简单方法是:

[[0]*N for x in range(N)]

但是,假设我想通过用随机数填充来创建数组:

[[random.random()]*N for x in range(N)]

这不起作用,因为创建的每个随机数都会被复制 N 次,所以我的数组没有 NxN 个唯一随机数。

有没有办法在不使用 for 循环的情况下在一行中执行此操作?

最佳答案

您可以使用嵌套列表理解:

>>> N = 5
>>> import random
>>> [[random.random() for i in range(N)] for j in range(N)]
[[0.9520388778975947, 0.29456222450756675, 0.33025941906885714, 0.6154639550493386, 0.11409250305307261], [0.6149070141685593, 0.3579148659939374, 0.031188652624532298, 0.4607597656919963, 0.2523207155544883], [0.6372935479559158, 0.32063181293207754, 0.700897108426278, 0.822287873035571, 0.7721460935656276], [0.31035121801363097, 0.2691153671697625, 0.1185063432179293, 0.14822226436085928, 0.5490604341460457], [0.9650509333411779, 0.7795665950184245, 0.5778752066273084, 0.3868760955504583, 0.5364495147637446]]

或者使用 numpy(非标准库但很流行):

>>> import numpy as np
>>> np.random.random((N,N))
array([[ 0.26045197, 0.66184973, 0.79957904, 0.82613958, 0.39644677],
[ 0.09284838, 0.59098542, 0.13045167, 0.06170584, 0.01265676],
[ 0.16456109, 0.87820099, 0.79891448, 0.02966868, 0.27810629],
[ 0.03037986, 0.31481138, 0.06477025, 0.37205248, 0.59648463],
[ 0.08084797, 0.10305354, 0.72488268, 0.30258304, 0.230913 ]])

(P.S. 养成说 list 的习惯是个好主意,当你的意思是 list 并为 numpy 保留 array ndarrays。实际上有一个内置的 array 模块,它有自己的 array 类型,所以这更让人困惑,但它很少被使用。)

关于python - 使用随机数创建二维数组的简单方法 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108417/

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