ボンジニアの備忘録

中小SIerからWeb系のベンチャーに企業に転職。基本的にはごく普通の平凡なエンジニアです。思ったことをつらつら書いていきます。

numpyライクなElixirのライブラリー開発日誌(3)

はじめに

PythonのnumpyをElixirで書いて勉強しようというざっくりとした目標で開発を進めています。これまでの日誌は下記です。

プログラム開発

今回は初期化に使うonesとzerosを実装します。

onesの作成

ones関数は与えられた行と列から全て値が1の行列やベクトルを生成するための関数です。よく初期化に用いられます。

iex> Numexy.ones({3,2}) 
%Array{array: [[1, 1], [1, 1], [1, 1]], shape: {3, 2}}

Pythonで言う所のこれ

In [1]: numpy.ones((3,2))
Out[1]: 
array([[ 1.,  1.],
       [ 1.,  1.],
       [ 1.,  1.]])

zerosの作成

zeros関数は与えられた行と列から全て値が0の行列やベクトルを生成するための関数です。

iex> Numexy.zeros({3,2}) 
%Array{array: [[0, 0], [0, 0], [0, 0]], shape: {3, 2}}

Pythonで言う所のこれ

In [1]: numpy.zeros((3,2))
Out[1]: 
array([[ 0.,  0.],
       [ 0.,  0.],
       [ 0.,  0.]])

onesもzerosもElixirのList.duplicate関数を使って実装しています。

まとめ

これを作って何?って思う方もいらっしゃるかもしれませんが、完全に自己満足ですw

次はこちらです。


ツイッターもやっていますのでよかったらフォローをしていただけると嬉しいです。
twitter.com