Recentemente ho aggiornato il pacchetto Numpy di Python su una delle mie macchine, ea quanto pare ho fatto affidamento su a deprecated feature of numpy per un po 'di tempo:Perché non vedo Numepy's DeprecationWarning?
>>> np.__version__
'1.10.4'
>>> a = np.ones(10, dtype=np.uint16)
>>> a /= 0.5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ufunc 'true_divide' output (typecode 'd') could not be coerced to provided output parameter (typecode 'H') according to the casting rule ''same_kind''
Uno dei commentatori nel link qui sotto indicate:
probabilmente significa non avete visto i warning di deprecazione da sempre ;)
... che è corretto, non l'ho fatto.
Ma perché? Come sono riuscito a saltare l'avvertimento di deprecazione?
Coerentemente con the documentation, questo stesso codice ha lavorato in modo diverso nel mio precedente versione NumPy:
>>> np.__version__
'1.9.2'
>>> a = np.ones(10, dtype=np.uint16)
>>> a /= 0.5
>>> a
array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2], dtype=uint16)
... ma non dovrebbe questo trigger un avvertimento? Ho frainteso quanto numpy gestisce gli avvisi di deprecazione? Come posso essere sicuro di non mancare altri avvisi di deprecazione?
Il mio ambiente di pitone:
Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)] on win32
vengono ignorati per default – wim