0

嗨,我确定有一种更有效的编码方式,我主要是一名 java 程序员,但试图用一些基本的 python 帮助一些人。

我需要一个包含一组随机坐标的二维数组,例如 (2, 10)。我最初的想法是创建数组,然后填充包含两个坐标的较小数组。

import numpy
import random

a = numpy.zeros(10000).reshape(100, 100)
temp = []
for i in range(0,100):
    for j in range(0,100):
        temp.append(random.randint(0,100))
        temp.append(random.randint(0,100))
        a[i][j]=temp

print a

这会产生错误 ValueError: setting an array element with a sequence。

那么解决这个问题的最佳方法是什么?对不起,我以前从未真正使用过 python 的这段代码!

4

3 回答 3

2

这是一个三个暗淡的数组,您可以通过以下方式创建它:

np.random.randint(0, 100, (100, 100, 2))
于 2013-03-28T12:02:23.033 回答
0

如果我理解您要做什么,@HYRY 会给出正确答案。您收到 Value 错误的原因是因为您将序列或 python 列表(tmp)分配给单个浮点数( a[i][j] )。@HalCana​​ry 向您展示了如何修复您的代码以解决此错误,但 HYRY 的代码应该最适合 python 计算。

于 2013-03-30T00:27:18.587 回答
0
import numpy
import random
a = numpy.zeros((100, 100, 2))
for i in range(0,100):
    for j in range(0,100):
        a[i,j,:] = (random.randint(0,100),
                    random.randint(0,100))
print 'x-coords:\n', a[:,:,0]
print 'y-coords:\n', a[:,:,1]
于 2013-03-28T12:22:41.863 回答