python(numpy) - 另一种生成数组的方法(来自另一个数组)

时间:2011-10-28 15:39:16

标签: python arrays numpy

我做了这段代码:

from scitools.std import *


npoints=10

vectorpoint=array(random.uniform(-1,1,[1,2]))
experiment=array(random.uniform(-1,1,[npoints,2]))
print("vectorpoint=",vectorpoint)
print("experiment=",experiment)
print(vectorpoint.shape)
print(experiment.shape)

工作正常。 我想问一下“实验”数组是否可以用其他方式编写,例如“experiment = [vectorpoint,npoints]”。我想使用vectorpoint数组。

(我不想再写“random.uniform(-1,1,[npoints,2])”。

1 个答案:

答案 0 :(得分:1)

如果您希望experiment成为npoints行的数组,这些数组都等于vectorpoint,则可以使用

experiment = vstack([vectorpoint] * npoints)

如果您希望experimentnpoints独立生成random.uniform()行,则必须再次调用后者函数,因为vectorpoint仅包含返回的数值random.uniform()并且没有关于它是如何生成的信息。如果重复困扰你,你可以将其移动到一个函数:

def uniform(lines):
    return random.uniform(-1, 1, [lines, 2])

(请注意,您对array的使用是多余的 - random.uniform()的返回值已经是数组。)