【numpy】ones 関数の基本的な使い方についてわかりやすく解説!【Python】

今回は numpy の関数の一つである ones 関数の基本的な使い方について解説いたします。

配列を生成したときに 1 で初期化した ndarray 配列が欲しいという時はに使える関数となります。
出番はそれほど多くないため、忘れてしまうことも多いでしょうから、使い方についてわかりやすくまとめておきます。

スポンサーリンク
目次

ones 関数とは

ones 関数とは配列の要素を 1 で初期化するための関数です。

機械学習で使われることが多い関数ですが行列の要素が1でほしいとき、また配列データのマスキングをするときなどにも使われたりします。

ほとんど同じような関数に zeros 関数というものがありますが、基本的にはこちらを使うことが多い気がします。
zeros 関数については以下の記事で解説しておりますので、気になる方がいらっしゃれば以下をご参照ください。

また、 要素の値が決まってる必要がないのであれば empty 関数というより高速に配列を用意できる関数もありますので状況によって使い分けてください。

簡単な ones 関数の使い方

まずは簡単に ones 関数の使い方について解説いたします。
使い方は以下のように生成したい配列の形状を指定します。

np.ones( 配列の形状 )

サンプルコード

また通常は、float 型でデータが生成されますが int 型などデータ型を指定したい場合は以下のようにします。

ones 関数の各パラメータおよび戻り値について

それでは ones 関数の各パラメータと戻り値について詳細に解説していきます。

最初に記載方法について以下に示します。

ndarray  = np.ones(shape , dtype = float , order = ‘C’

ones関数は上記のように一つの必須引数とその他の2つのデフォルト引数で呼び出すことができます。

各引数についてはそれぞれ以下のような役割があります。

記載例 :

ndarray  = np.ones( ( 2, 4 ) , float , ‘C’)
ndarray  = np.ones( ( 2, 4 ) )  #必須の引数のみ

区分項目名説明
引数 : 必須shape生成する配列の形を指定します。
引数 : 任意dtype要素のデータ型を指定します。省略可能で、デフォルトは float 型です。
引数 : 任意orderデータの保存方法を指定します。省略可能で、デフォルトは ‘C’ です。(’C’ か ‘F’ から選択)
戻り値配列 ( ndarray )shape で指定した形状の未初期化のからの配列を生成します。

引数

shape (配列の形状)

shape の指定例 : np.ones( ( 2, 4 ) )

shape は、ones 関数における唯一必須の引数で、配列の形状を指定します。

指定方法はタプルのデータ型で指定します。(1次元配列ならint型でも問題ないです。)
タプルでとは書きましたが、配列でも構いません。

1次元配列を生成したい場合は ones(5) (もしくは ones((5,)) )、2次元配列を生成するには ones((2,4))といった具合で指定します。

すでにある numpy 配列から ones 関数を使って同じ形状の新しい配列を取得したい場合、 numpy ライブラリにある shape 関数を使って np.ones( np.shape( nplist ) ) のようにして作成することもできます。

ただこのような場合には類似の ones_like という関数があるのでそちらを使う方が良いかもしれません。

dtype(データ型)

dtypeの指定例 : np.ones ( ( 2, 4 ) , int )

デフォルト引数であり、初期値には float が設定されています。

そのため、特に指定しなくてもよい引数です。

intにて配列を生成したい場合は “int” と記載してあげるだけです。

サンプルコード

order(格納方法)

orderの指定例 : np.ones ( ( 2, 4 ) , int , ‘F’)

orderはデータの格納方法を指定します。

‘C’‘F’ から選択するデフォルト引数です。デフォルトは ‘C’ になっています。

Cの意味はC言語方式という意味で行優先に格納する方式です。

Fの意味としてはFortran方式という意味で反対に列優先に格納する方式です。

ones 関数に関しては全部配列の要素が 1 になるので、指定する意味は殆どないかもしれません。

因みに実際にどんな違いがあるかどうかは ones 関数のでは全部1の要素になってしまうためどういう格納になっているかわからないですが、 numpy 配列を作成するときにも同様に order を指定できるので、それで確認することができます。

サンプルコード

戻り値

ndarray = np.ones ( ( 2, 4 ) , int , ‘F’)

ones 関数の戻り値は ndarray という numpy 配列です。

ndarrayとは簡単に numpy で利用できる多次元リストのことです。

nupmy 配列を用意する方法は以下のようにすれば生成できます。

ndarray = np.array( [1, 3, 5] )

通常は上記のようにして初期化して用意しますが、ones 関数を使えば形状の ndarray の値を全て 1 にした状態で用意できるというわけです。

いかがでしょうか。
基本は ones 関数は機械学習におけるCNNの畳み込み層等で使われたりしますが、単純に要素1の配列が欲しいという場合にも使えると思いますので状況に応じて使ってみるとよいでしょう。

今回はここまでです。
お疲れ様でした。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

本業ではPHPを使ったWEBアプリやJavaを使用した基幹アプリを作成しております。Pythonは個人的に勉強しており、E資格を取ったりしたおかげで、業務でAIの研究とかも任されるようになりました。学習のアウトプットのために本サイトを運営しておりますが、これからPythonを学ぶという人のお役に立てればいいなと思います。わからないことや調査して記事にしてほしいことがございましたらご連絡いただけると幸いです。

コメント

コメントする

目次
閉じる