2013-03-28 56 views
0

嗨,我确定有一种更高效的编码方式,即时通讯主要是一个Java程序员,但试图帮助一些与一些基本的Python。在数组中存储两个值python

我需要一个包含一组随机坐标的2D数组,例如(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:使用序列设置数组元素。

那么最好的解决这个问题的方法是什么?对不起,这个黑客一起代码我从来没有真的必须使用python!

回答

2

这是一个三个维数组,你可以通过创建它:

np.random.randint(0, 100, (100, 100, 2)) 
+0

将创建一个100 * 100阵列与坐标? – user2219545

+0

@ user2219545这是一个100 * 100 * 2数组,其中两个坐标使用最后一个维度。 –

+0

@ user2219545 Janne的意思是说! – pradyunsg

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] 
0

@HYRY给出了正确的答案,如果我明白你正在尝试做的..你得到的值的原因错误是因为您正在将一个序列或Python列表(tmp)分配给单个浮点数(a [i] [j])。 @HalCana​​ry向你展示了如何修复你的代码来解决这个错误,但是HYRY的代码应该是python计算的最佳代码。