我试图在for循环中使用linspace。我想要0到10之间0.5的间隔。似乎z_bin正在正常执行。
我的问题是:如何在for循环中正确使用linspace来代替注释行中显示在其旁边的range函数?从使用整数到使用小数,在循环中需要更改什么?
z_bin = numpy.linspace (0.0,10.0,num=21)
print 'z_bin: ', z_bin
num = len(z_bin)
grb_binned_data = []
for i in numpy.linspace(len(z_bin)-1): #range(len(z_bin)-1):
zmin = z_bin[i]
zmax = z_bin[i+1]
grb_z_bin_data = []
for grb_row in grb_data:
grb_name = grb_row[0]
ra = grb_row[1]
dec = grb_row[2]
z = float(grb_row[3])
if z > zmin and z <= zmax:
grb_z_bin_data.append(grb_row)
grb_binned_data.append(grb_z_bin_data)
更简单的方法是使用zip函数:
不应使用linspace的输出来索引数组!linspace生成浮点数,数组索引需要整数。
从你的代码来看,你真正想要的是这样的:
zmin
和zmax
仍然是浮点数(十进制)。相关问题 更多 >
编程相关推荐