PyFITS を使ってある 3 次元の FITS ファイルを開いたところ、観測データの存在しないピクセルは NaN が詰まっていました。この配列に対して処理をしようとすると、演算が不正になってしまうので、以下の方法で NaN のピクセルだけ値を 0 に置き換えました。 import pyfits hdulist = pyfits.open("foo.fits") data = hdulist[0].data index = numpy.where(data != data) # check if NaN for i in range(len(index[0])): data[index[0][i]][index[1][i]][index[2][i]] = 0. numpy.where という関数を使うことで、条件に一致する配列要素の (i, j, k...) の組を tuple で返してく
![numpy の array で、特定の値を持つ要素を探す - 宇宙線実験の覚え書き](https://cdn-ak-scissors.b.st-hatena.com/image/square/d5c2344fd25766411a4f954d58f26a616efe4f59/height=288;version=1;width=512/https%3A%2F%2Fimages-fe.ssl-images-amazon.com%2Fimages%2FI%2F51%252Bxv65qdBL._SL160_.jpg)