我有两个numpy数组:
rates = [1.1, 0.8...]
zenith_anlges = [45, 20, ....]
rates
和zen_angles
长度相同。你知道吗
我还有一些预定义的zenith_angle bins
zen_bins = [0, 10, 20,...]
我需要做的是根据它对应的天顶角存储箱来存储rates
。你知道吗
一个丑陋的方法是
nbin = len(zen_bins)-1
norm_binned_zen = [[0]]*nbin
for i in range(nbin):
norm_binned_zen[i] = [0]
for i in range(len(rates)):
ind = np.searchsorted(zen_bins,zen_angles[i]) #The corresponding bin number
norm_binned_zen[ind-1].append(rates[i])
这不是很pythonic,对于大型数组来说非常耗时。我相信一定有更优雅的方法吗?你知道吗
起始数据(此处随机生成):
由于您使用的是
numpy
,因此可以使用单行解决方案:把这条线分成几步:
low
和hight
边上循环。你知道吗zenith_angles
数组中给定bin内的角度索引。你知道吗rates
值。你知道吗相关问题 更多 >
编程相关推荐