我创建了一个数组,使用npr.uniform(size =(N,2))存储N个随机点的坐标。现在,我想使用一个计算Xtotal ^ 2 + Ytotal ^ 2的函数,其中Xtotal和Ytotal分别是N个x坐标和N个y坐标的总和。我可以通过使用for循环来做到这一点,但现在我想独立运行该程序多次(超过1000次),而我能想到的唯一方法是使用for循环。是否可以用矢量化代码来使其运行更快?我正在做的实际项目要复杂一些,在这里很难描述它,但是我想如果我能解决这个简化的程序,我会在做更困难的程序时没有问题。
谢谢
这是你想要的吗?
>>> N = 5
>>> coords = np.random.uniform(size=(N, 2))
>>> coords
[[ 0.00510663 0.52338403]
[ 0.88250555 0.0440339 ]
[ 0.1753249 0.4534223 ]
[ 0.13600696 0.71194949]
[ 0.87044574 0.80934245]]
>>> coords.sum(axis=0)
array([ 2.31797242, 0.95364616])
>>> (coords.sum(axis=0)**2).sum()
12.247833350611774
如果要重复1000次,则可以尝试生成1000 * 5个随机数。请注意,如果您要进行复杂的处理(而不仅仅是求和和幂),那么通常不能对1000个重复进行矢量化处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句