我做了这段代码:
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”数组是否可以用另一种方式编写,例如“ experiment = [vectorpoint,npoints]”。我想使用vectorpoint数组。
(我不想再写一遍“ random.uniform(-1,1,[npoints,2])”。
最佳答案
如果希望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()
的返回值已经是一个数组。)关于python - python(numpy)-另一种产生数组的方式(从另一个数组),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7931545/