我有一段代码需要优化,使用了列表推导式并且能够正常工作。
series1 = np.asarray(range(10)).astype(float)
series2 = series1[::-1]
ntup = zip(series1,series2)
[['', 't:'+str(series2)][series1 > series2] for series1,series2 in ntup ]
#['', '', '', '', '', 't:4.0', 't:3.0', 't:2.0', 't:1.0', 't:0.0']
尝试在此处使用 np.where()
。是否有使用 numpy
的解决方案(不需要消耗系列)。
series1 = np.asarray(range(10)).astype(float)
series2 = series1[::-1]
np.where(series1 > series2 ,'t:'+ str(series2),'' )
这是结果:
array(['', '', '', '', '', 't:[ 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.]',
't:[ 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.]',
't:[ 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.]',
't:[ 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.]',
't:[ 9. 8. 7. 6. 5. 4. 3. 2. 1. 0.]'],
dtype='|S43')
['t:4.0', 't:3.0', 't:2.0', 't:1.0', 't:0.0']
这样就可以了? - Divakar