Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结构化数组python中基于条件的随机值生成_Python_Arrays - Fatal编程技术网

结构化数组python中基于条件的随机值生成

结构化数组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

我有一个表示位置(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]: 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)