[英]How do I create a loop repeating the following but each time deducting 0.1 from a?
[英]Create an array of repeating elements that increase by 0.1 intervals
我要我的代码执行的操作是创建一个元素数组:[13.8,13.9,14。,...]会增加0.1,但是每个元素在重复下一个数字之前应重复17次。 下面是我的代码。
from numpy import*
from pylab import*
def f(elem):
return repeat((elem + 0.1),17)
print f(13.8)
def lst(init):
yield init
while True:
next = f(init)
yield next
init = next
for i in lst(13.8):
print i
if i > 20:
break
代码的输出仅显示一个数组13.9重复17次,但随后显示错误:
Traceback (most recent call last):
File "repeatelementsarray.py", line 19
if i > 20:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
似乎程序正在尝试创建多个数字数组,我只想要一个数组。 同样因为lst是一个生成器,它不应该给出数组,所以使用fromiter吗?
基于xrange,您可以生成如下函数:
def repeated_range(start, stop, step=0.1, repeat=5):
r = start
while r < stop:
for i in xrange(repeat):
yield r
r += step
这将产生您想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.