'vectorize' object has no attribute '~'の解決法
自分のプログラムをテストしている時に、こんなエラーが出た。
'vectorize' object has no attribute '~'
このエラーに対する対応を記録しておく。
関数は、このような形で定義されていた。
class hoge: def huga:
最初の対応
まず、
numpy.vectorize(hoge.huga)(~)
としていたので、記法が間違っていると思い
a = numpy.vectorize(hoge.huga) a(~)
としたが、変わらなかった。
そもそもvectorizeとは?
vectorizeというのはなんだろう。
普通の関数の場合、タイプは'function'となる。そして、このfunctionをnumpy.vectorize()を使ってベクトル化すると、タイプは'numpy.vectorize'となるのだ。
解決
実を言うと、このコードには、もう一つ似たようなhoge_みたいな名前の変数があったんですよね。
それと混同していて、それが原因でした。
numpy.vectorize(hoge_.huga) #っていうのを numpy.vectorize(hoge.huga) #にした。
そしたら治りました。