数学やプログラミングの備忘録

数理最適化, Python, C++をメインに紹介するブログ。

MENU

NumPy - 1次元/2次元配列の初期化

f:id:cresselia2012:20200906153906p:plain

python の NumPy パッケージで、1次元/2次元配列を初期化する方法に加えて、配列のサイズや型を指定する方法も紹介します。

目次

NumPyのインストールとインポートの方法は下記の記事で紹介しております:

numpy: インストールとインポート - 数学やプログラミングの備忘録

配列を初期化する3つの関数

本記事では、配列の初期化の方法として3つの関数を紹介します。配列のサイズと型を指定することができます。

■ numpy.zeros(サイズ, 型): 指定したサイズ・型で、値=0で初期化
■ numpy.ones(サイズ, 型): 指定したサイズ・型で、値=1で初期化
■ numpy.full(サイズ, 値, 型): 指定したサイズ・型・値で、初期化


型は指定しなくてもokです。指定しなかった場合は、numpy.zeros numpy.onesfloat64 で初期化され、numpy.full は指定した値の型で初期化されます。

次に、それぞれの関数の使用例を見ていきます。

配列を0で初期化(0埋め): numpy.zeros

サイズ(要素数)=3の配列で初期化してみます。

>>> import numpy as np
>>> a_float = np.zeros(3)
>>> a_float
array([0., 0., 0.])
>>> a_int = np.zeros(3, int)
>>> a_int
array([0, 0, 0])

型を指定しなければ、0. となっていることが分かります。

配列を1で初期化(1埋め): numpy.ones

同様に、サイズ(要素数)=3の配列で初期化してみます。

>>> import numpy as np
>>> a_int = np.ones(3, int)
>>> a_int
array([1, 1, 1])

配列を任意の値で初期化: numpy.full

サイズ(要素数)=3, 値=99 の配列で初期化してみます。

>>> import numpy as np
>>> a_int = np.full(3, 99, int)
>>> a_int
array([99, 99, 99])

2次元配列を初期化

サイズを tuple で指定することで、2次元配列として初期化することができます。2行3列の行列として、初期化してみます。

>>> import numpy as np
>>> matrix_A = np.zeros((2,3))
>>> matrix_A
array([[0., 0., 0.],
       [0., 0., 0.]])

2次元以上の多次元配列も扱うことができます。

>>> import numpy as np
>>> matrix_A = np.zeros((2,3,4))
>>> matrix_A
array([[[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]]])

さらに詳しい情報は公式ドキュメントをご確認ください:

https://numpy.org/doc/stable/