结构化数组python中基于条件的随机值生成
我有一个表示位置(x,y)和颜色(r,g,b)的数组。现在数组将全部变为零(正如它应该的那样)。我需要使x和y的值是随机的,并且使用结构化数组python中基于条件的随机值生成,python,arrays,Python,Arrays,我有一个表示位置(x,y)和颜色(r,g,b)的数组。现在数组将全部变为零(正如它应该的那样)。我需要使x和y的值是随机的,并且使用np.random.randint。例如,要生成从1到10的2x5整数数组,请使用: In [8]: np.random.randint(1, 10, (2,5)) Out[8]: array([[7, 7, 5, 6, 3], [6, 3, 6, 8, 3]]) 类似地,要生成从0到10的2x5形浮点数数组,请执行以下操作: In [10]: 1
np.random.randint
。例如,要生成从1到10的2x5整数数组,请使用:
In [8]: np.random.randint(1, 10, (2,5))
Out[8]:
array([[7, 7, 5, 6, 3],
[6, 3, 6, 8, 3]])
类似地,要生成从0到10的2x5形浮点数数组,请执行以下操作:
In [10]: 10*np.random.random((2,5))
Out[10]:
array([[ 9.50898995e+00, 5.67913201e+00, 7.77076899e+00,
3.77030483e+00, 9.67766293e-01],
[ 9.93215775e+00, 6.40290706e+00, 9.70962150e+00,
5.98875979e-03, 5.65110883e+00]])
关于np.random.randint
的文档可用,np.random.random
的文档可用
蟒蛇2
使用上述函数,我们可以生成所需形状的浮点数:
np.array(
zip(10*np.random.random((10,2)),
255*np.random.random((10,3))),
[ ('position', [
('x', float, 1),
('y', float, 1)]),
('color', [
('r', float, 1),
('g', float, 1),
('b', float, 1)])
]
)
蟒蛇3
只有一个小改动,上述内容在Py3下工作:
np.array(
list(zip(10*np.random.random((10,2)),
255*np.random.random((10,3)))),
[ ('position', [
('x', float, 1),
('y', float, 1)]),
('color', [
('r', float, 1),
('g', float, 1),
('b', float, 1)])
]
)
试试这个:
import random
import numpy
array = numpy.zeros(10, [ ('position', [ ('x', float, 1),
('y', float, 1)]),
('color', [ ('r', float, 1),
('g', float, 1),
('b', float, 1)])])
ranPos = lambda: random.random() * 10
ranColor = lambda: random.random() * 255
for i in range(10):
array[i] = ((ranPos(), ranPos()),
(ranColor(), ranColor(), ranColor()))
如果要生成整数,请使用以下选项:
ranPos = lambda: random.randint(0,10)
ranColor = lambda: random.randint(0,255)
它们是否是整数并不重要。我想看看在这个数组中,我如何为position中的所有值生成最多10个随机数,为color中的所有值生成最多255个随机数。TypeError:需要一个类似字节的对象,而不是'zip'@mmb_rach它对我来说运行正常。我只是复制并粘贴了答案,它对我来说仍然运行良好。必须是不同的python版本,谢谢帮助though@mmb_rach你在练蟒蛇3吗?这确实需要一个小小的改变:答案更新。
ranPos = lambda: random.randint(0,10)
ranColor = lambda: random.randint(0,255)