NumPy uniqe, File I/O

集合関数

集合関数。ndarrayから重複を取り除きsortした結果を返す。
2dであってもその中から要素を抜き出して1dにする。


hoges = np.array(["hoge","fuga","hoge","fuga"])
print(np.unique(hoges)) # ['fuga' 'hoge']

fugas = np.array([["hoge","fuga","hoge","fuga"],["hoge2","fuga2","hoge2","fuga2"]])
print(np.unique(fugas)) # ['fuga' 'fuga2' 'hoge' 'hoge2']

ファイルI/O

pandasを使わずとも、NumPyだけでファイルI/Oができる。
以下でhoges.npyという無圧縮バイナリファイルが作られる。
それを読み込んで出力する。


hoges = np.array(["hoge","fuga","hoge","fuga"])
np.save('hoges.npy',hoges)

fugas = np.load('hoges.npy')
print(fugas) # ['hoge' 'fuga' 'hoge' 'fuga']

複数の配列を同時に書き込むこともできる。
キーワードを指定して書き込む。キーワードを指定して1つずつ読み込む。
読み込む時はキーワードを指定して参照したときに遅延ロードされる。


hoges = np.array(["hoge1","fuga1","hoge1","fuga1"])
fugas = np.array(["hoge2","fuga2","hoge2","fuga2"])
np.savez('hogefuga.npz', hoges=hoges, fugas=fugas)

hogefugas = np.load('hogefuga.npz')
hoges_l = hogefugas['hoges']
fugas_l = hogefugas['fugas']
print(hgoes_l) # ['hoge1' 'fuga1' 'hoge1' 'fuga1']
print(fugas_l) # ['hoge2' 'fuga2' 'hoge2' 'fuga2']