Pythonのメモ帳

numpy, pandas, tensorflow を使いこなすための忘備録

要素が全てnanの配列を生成をする

 最近書くpythonコードの半分以上はnumpy.ndarrayを使ってる。

numpyがなかったら仕事にならない。それくらいお世話になってる。ただ一つだけ不満というか疑問に思っているのが要素が全てnanの配列を生成をする関数がないこと。要素が全て0の配列を生成する関数 numpy.zeros() があるならnumpy.nans() があってもいいと思うけど、なぜかない。何か理由があるんだろうか。

まあとにかく、そういう関数はないので自前で作るわけで、いつも下のようなやり方をしてる。

import numpy as np
mat = np.zeros([ysize,xsize])
mat[:,:] = np.nan

 

zeros()を使って狙いのサイズの配列を作成したのちに、全要素をnanにする、という処理を行う。(本当はempty()を使った方が計算コストが低いらしいけど)

作りたい配列と同じサイズの配列があったりする場合は、zeros_like() も便利。同じサイズで要素が全て0の配列を作ってくれる。 

mat = np.zeros_like(mat_original)
mat[:,:] = np.nan

 

でもやっぱりnumpy.nans()が欲しい。

 

 

 WEB/EC専門の転職支援サービス【サポタント】