我做了这段代码:
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])”。
答案 0 :(得分:1)
如果您希望experiment
成为npoints
行的数组,这些数组都等于vectorpoint
,则可以使用
experiment = vstack([vectorpoint] * npoints)
如果您希望experiment
由npoints
独立生成random.uniform()
行,则必须再次调用后者函数,因为vectorpoint
仅包含返回的数值random.uniform()
并且没有关于它是如何生成的信息。如果重复困扰你,你可以将其移动到一个函数:
def uniform(lines):
return random.uniform(-1, 1, [lines, 2])
(请注意,您对array
的使用是多余的 - random.uniform()
的返回值已经是数组。)