使用 numpy.min 获取 float64 类型 numpy 数组中的最小值,但出现错误"numpy.float64"对象无法解释为索引



我试图使用 numpy.min 获取 tr_loss 和 val_loss 之间的最小值。

np.min(np.min(tr_loss), np.min(val_loss))

tr_loss 和 val_loss 是从 keras 中的model.fit返回的 numpy 数组。

'tr_loss': [0.84579472304284575, 0.77913203762769701, 0.76625978895127778, 0.75814685845822094, 0.75486504282504319, 0.74989902700781819, 0.74833822523653504, 0.74695981823652979, 0.74483485338091848, 0.74150521695762872]
'val_loss': [0.76307238261103627, 0.75163262798049202, 0.74257619685517573, 0.75038179922993964, 0.72936564083517463, 0.73233943380595634, 0.72518632964207708, 0.74037907492741795, 0.7237680551772061, 0.73257833277079065]}

但是我不断收到此错误

TypeError                                 Traceback (most recent call last)
<ipython-input-35-e82cb24a3b5d> in <module>()
      3 
      4 
----> 5 y_ax_min = np.min(np.min(tr_loss), np.min(val_loss)) - .1
      6 y_ax_max = np.max(np.max(tr_loss), np.max(val_loss)) + .1
      7 plt.figure(figsize=(8, 8),dpi=500)
D:Anacondaenvspy27libsite-packagesnumpycorefromnumeric.pyc in 
amin(a, axis, out, keepdims)
   2347             pass
   2348         else:
-> 2349             return amin(axis=axis, out=out, **kwargs)
   2350 
   2351     return _methods._amin(a, axis=axis,
D:Anacondaenvspy27libsite-packagesnumpycore_methods.pyc in _amin(a, 
axis, out, keepdims)
     27 
     28 def _amin(a, axis=None, out=None, keepdims=False):
---> 29     return umr_minimum(a, axis, None, out, keepdims)
     30 
     31 def _sum(a, axis=None, dtype=None, out=None, keepdims=False):
TypeError: 'numpy.float64' object cannot be interpreted as an index

有谁知道问题出在哪里?

比较两个元素时,应使用 numpy.minimum 而不是 numpy.min

关于这个问题的评论帮助了我。感谢所有发表评论的人。

最新更新