我做了这段代码:

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)


如果希望experimentnpoints独立生成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/

10-11 14:46