基本上我运行for循环并得到一条错误消息并且它没有运行,如果我在其中运行相同的for循环,其中的代码似乎正常工作。
这是我的代码,在这段代码中,我主要在一个阵列 magnitude_differences 的形状(68,4461,2)上进行操作,以创建新的阵列更正。数组 reference_star_magnitudes 的形状(4461,68,2)我只是用它来稍微证明代码。
corrections = []
for i,_ in enumerate(reference_star_magnitudes):
corrections.append( np.mean([ float(row[i].T[0])
for row in magnitude_differences
if float(row[i].T[0]) < 2. ]) )
corrections = np.array(corrections)
给出错误消息:
~/anaconda3/lib/python3.5/site-packages/numpy/core/_methods.py:59:
warnings.warn("Mean of empty slice.", RuntimeWarning)
RuntimeWarning: Mean of empty slice.
~/anaconda3/lib/python3.5/site-packages/numpy/core/_methods.py:70:
ret = ret.dtype.type(ret / rcount)
RuntimeWarning: invalid value encountered in double_scalars
带有print语句的代码似乎运行得很好。
corrections = []
for i,_ in enumerate(reference_star_magnitudes):
print('nothing')
corrections.append( np.mean([ float(row[i].T[0])
for row in magnitude_differences
if float(row[i].T[0]) < 2. ]) )
corrections = np.array(corrections)
答案 0 :(得分:0)
print语句停止运行错误消息。我认为没有print语句代码没有运行,但确实如此。为深夜愚蠢的问题道歉,但你帮我回答了!