Python 2.7 のドキュメントには、hashlib ハッシャーについて次のように書かれています。
hash.update(arg)
Update the hash object with the string arg. [...]
しかし、文字列ではないオブジェクト、たとえばbuffers、numpy ndarraysをフィードする人を見てきました。
Python のダック タイピングを考えると、文字列以外の引数を指定できることに驚きはありません。
問題は、ハッシャーが引数で正しいことを行っていることをどのように確認できるかということです。
ハッシャーが引数に対して単純に浅い反復を行うとは想像できません。これは、複数の次元を持つ ndarray ではおそらく惨めに失敗するためです。浅い反復を行うと、n-1 次元の ndarray が得られます。