在数组python中存储两个值

时间:2013-03-28 11:53:33

标签: python arrays 2d

嗨,我确定有一个更有效的编码方式,我主要是一个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:设置一个带序列的数组元素。

那么解决这个问题的最佳方法是什么?对不起这个被黑客攻击的代码,我以前从来没有真正使用过python!

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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]

答案 2 :(得分:0)

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