到目前为止,我已经创建了两个数据点列表,分别标记为x和y。我不知道如何将它们组合成一个数组,但使它们是坐标。
import random
import pylab
x = [(random.randint(0,100)) for i in range(3000)]
y = [(random.randint(0,100)) for j in range(3000)]
可以与zip()
:
zip(x, y)
或者您可以生成数字一起以
开头:[(random.randint(0,100), random.randint(0,100)) for i in xrange(3000)]
我注意到您正在导入pylab
。如果您愿意使用NumPy数组作为坐标,您可以简单地这样写:
import numpy.random
coord = numpy.random.randint(0, 100, (3000, 2))
不需要显式循环或列表推导式。这使得代码比纯Python版本快120倍:
In [6]: %timeit coord = numpy.random.randint(0, 100, (3000, 2))
10000 loops, best of 3: 82.7 us per loop
In [7]: %timeit coord = [(random.randint(0,100), random.randint(0,100)) for i in xrange(3000)]
100 loops, best of 3: 10.3 ms per loop
可以使用zip
:
>>> x = [(random.randint(0,100)) for i in range(3000)]
>>> y = [(random.randint(0,100)) for j in range(3000)]
>>> coords = zip(x,y)
>>> len(coords)
3000
>>> type(coords[0])
<type 'tuple'>
>>> coords[0]
(54, 0)
>>>
您可以将列表作为元组添加到包含坐标的新列表中:
import random
import pylab
XY=[]
x = [(random.randint(0,100)) for i in range(3000)]
y = [(random.randint(0,100)) for j in range(3000)]
for xg, yg in zip(x,y):
XY.append((xg,yg))