【NumPy入門 np.zeros】0で初期化した配列を作るzeros関数の使い方
Pythonの行列計算ライブラリNumPyでは配列を初期化する関数がたくさんあります。
その中から、この記事では配列の全要素を0で初期化するnp.zeros関数について紹介します。
また、配列を0で初期化するnp.zeros関数については、以下の記事で解説しています。
【Numpy入門 np.ones】配列の全要素を1で初期化するones関数の使い方
更新日:2024年5月6日
目次
np.zerosの引数と返り値
numpy.
zeros
(shape, dtype=float, order=’C’)
shapeとdtype(要素の型)を指定して、0で埋められた配列を返します。
Parameters: |
- shape : int型かint型のtuple
-
新しい配列のshapeです。 例, (2, 3) or 2 .
- dtype : データ型, このパラメータはオプションなので、指定しなくてもOKです。
-
新しい配列のデータ型を指定します。, 例, numpy.int8 などを指定します。 デフォルトでは numpy.float64 .
- order : {‘C’, ‘F’}, このパラメータはオプションです。デフォルトでは‘C’
-
多次元配列を行優先 (C-style) か列優先 (Fortran-style) でメモリに格納するかを指定します。
|
Returns: |
- out : ndarray
-
パラメータで指定した条件で0初期化された配列を返します。
|
使い方
jupyter-labやjupyter-notebookを使って、以下のコードを試してみてください。
In [~]と書かれているセルがコード、Out[~]と書かれている部分が出力結果になります。
基本的な配列の作り方
第一引数に新しく作りたい配列のshapeを指定すれば、簡単に配列が作成できます。
Out[2]:
array([0., 0., 0., 0., 0.])
配列の情報をまとめて見るために、以下の関数を作っておきましょう。
このarray_info関数で先程作った配列を見てみると、要素が5つもつ配列ができていることがわかりますね。
また、前述の通り、dtypeを指定していない場合は、float64型になることがわかります。
Out:
配列のshape (5,)
配列の要素のデータ型 float64
配列の中身
[0. 0. 0. 0. 0.]
同じようにして、4×3の配列を作ります。
タプルで指定してあげるだけです。
Out:
配列のshape (4, 3)
配列の要素のデータ型 float64
配列の中身
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
三次元配列も同様にタプルでshapeを指定して作ります。
Out:
配列のshape (4, 3, 2)
配列の要素のデータ型 float64
配列の中身
[[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]]
要素の型を指定して配列を作る方法
dtypeというパラメータに、numpy.float32などの型を指定することで、任意の型で0初期化できます。
Out:
配列のshape (3,)
配列の要素のデータ型 int16
配列の中身
[0 0 0]
真偽値(bool)でも可能です。この場合は0の代わりにFalseで埋められた配列ができます。
Out:
配列のshape (3,)
配列の要素のデータ型 bool
配列の中身
[False False False]
ある配列と同じshapeの0初期化配列を作るnp.zeros_like
np.zerosと似た関数に、np.zeros_like関数があります。
この関数は第一引数にshapeではなく、shapeを真似たい配列を指定してあげると、np.zerosと同じように0初期化した配列を作ってくれます。
Out:
配列のshape (4, 3, 2)
配列の要素のデータ型 float64
配列の中身
[[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]
[0. 0.]]]
まとめ
この記事ではNumPyで0初期化した配列を生成する関数、np.zerosとnp.zeros_likeを紹介しました。
NumPyは高速に行列計算を行うためには必須のライブラリです。
この記事で配列の初期化を勉強して、様々な科学計算の実装・機械学習の実装に挑戦してみてください!
今回の記事は下記の記事を参考にしています。
参考記事:
この記事を書いた人
【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン