特定の NumPy が意味する制約に対して未知の値をテストしたいdtype
- たとえば、整数値を持っている場合、それは a に収まるほど小さいuint8
か?
私が確認できる限り、NumPy のdtype
アーキテクチャは次のようなことを行う方法を提供していません。
### FICTIONAL NUMPY CODE: I made this up ###
try:
numpy.uint8.validate(rupees)
except numpy.dtype.ValidationError:
print "Users can't hold more than 255 rupees."
私の小さなファンタジー API は Django のモデル フィールド バリデーターに基づいていますが、これは 1 つの例にすぎません。
>>> nd = numpy.array([0,0,0,0,0,0], dtype=numpy.dtype('uint8'))
>>> nd[0]
0
>>> nd[0] = 1
>>> nd[0] = -1
>>> nd
array([255, 0, 0, 0, 0, 0], dtype=uint8)
>>> nd[0] = 257
>>> nd
array([1, 0, 0, 0, 0, 0], dtype=uint8)
numpy.ndarray
疑わしい値をtyped as で明示的にラウンドトリップするnumpy.uint8
と、適切なサイズにラップされた整数が返されます-例外を投げたり、他の種類の実用的なエラー状態を発生させたりすることはありません.
もちろん、私はむしろ建築宇宙飛行士のフライト スーツを着用したくありませんが、それは代替案として望ましいものif dtype(this) ... elif dtype(that)
です。独自の API を作成するという壮大で贅沢な行為に着手する以外に、ここでできることはありますか?