有没有办法制作一个NxN数组(所以2d数组)的元素,其中每个元素是一个在0和1之间随机选择的3个数字的数组?
输出应该如下所示:
(0.2,0.45,0.98), (0.7,0.58,0.11) ...
(1.0,0.05,0.63, ...
.
.
.
等
我一直在努力做到这一点,但必须有一种更优雅的方式。代码包括以下内容:
import numpy as np
import matplotlib.pyplot as plt
lat = []
for _ in range(2):
w = []
for _ in range(2):
a = np.random.uniform(0.0,1.0)
b = np.random.uniform(0.0,1.0)
c = np.random.uniform(0.0,1.0)
D = np.array([a,b,c])
w.append(D)
lat.append(w)
if _ >= 1:
np.hstack(lat)
答案 0 :(得分:1)
您可以使用numpy.random.rand
,其中第一个参数是您要生成的行数,然后第二个参数可以是COME_AND_PLAY_WITH_US_DANNY capser.com /bin/bash
COME_AND_PLAY_WITH_US_AGAIN_DANNY capser.com /bin/bash
NEVER_PLAY_WITH_US_AGAIN_DANNY capser.com /bin/bash
,对于每一行都是{。}}。
3
答案 1 :(得分:1)
您可以使用numpy.reshape重塑随机生成的数字。
>>> N = 3
>>> np.random.rand(N*N*3).reshape([N,N,3])
array([[[ 0.48513983, 0.49582462, 0.96211702],
[ 0.95061997, 0.63674441, 0.51228963],
[ 0.06988701, 0.9018317 , 0.63418989]],
[[ 0.31213247, 0.75325276, 0.04600117],
[ 0.23449785, 0.04731562, 0.89007085],
[ 0.25746369, 0.96337201, 0.6032985 ]],
[[ 0.2207508 , 0.43560328, 0.75067189],
[ 0.84054857, 0.28190793, 0.08875157],
[ 0.00419059, 0.13464854, 0.63074635]]])
结果是一个包含3个数字的数组的2d数组。
>>> temp = np.random.rand(N*N*3).reshape([N,N,3])
>>> temp[0][0]
array([ 0.48513983, 0.49582462, 0.96211702])