pandas的idxmin

最近跑了一个一维数据转二维图像的代码。代码链接如下:

Geração de imagens GASF-GADF-MTF para classificação por aprendizagem profunda residual (ResNet)https://github.com/kalishcode/GASF-GADF-MTF到最后输出结果遇到了idxmin一直报错,卡了一天,就总结下之间的过程。

log = pd.DataFrame(hist.history)
log['time'] = (time.time() - start)
print('----------- Resultados -----------')
print('Loss: ', log.loc[log['loss'].idxmin]['loss'])# 报错位置
print('Acc: ', log.loc[log['loss'].idxmin]['val_accuarcy'])
print('Tempo de processamento: %.2f segundos.' % (time.time() - start))
log.to_pickle('Resultados_' + datafile)

错误信息如下:

The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

查了半天,是这段代码中的idxmin使用不规范,应该有括号的。

print('Loss: ', log.loc[log['loss'].idxmin()]['loss'])

最后修改成这样便可以顺利通过,而且idxmin是返回的索引,

看的最简洁的一个理解方式是下图:图中student_info.idxmin()就是指chinese, math, english中的最小值的索引,所以print(student_info.idxmin())最终输出的结果是:

chinese :4

math:0

english:0

pandas的idxmin_第1张图片

 把这个图看懂后就很容易理解文中用的print('Loss: ', log.loc[log['loss'].idxmin()]['loss']),这句代码指从loss当中找到最小的,返回索引,根据这个索引,输出对应的loss列的内容,同理,输出对应的val_accuracy列的内容。代表着输出ResNet模型的loss值和对应的val_accuracy值

你可能感兴趣的:(Python,人工智能,python,开发语言,pycharm)