Python NumPy / ndarray のメソッド #2

株式会社リュディアです。今回も NumPy についてまとめていきます。

前回までの NumPy / ndarray のメソッドについてのまとめへのリンクは以下を参考にしてください。

以下のリンクの内容を元にまとめを作っていきます。

今回は Array conversion に分類されるメソッドのうち fill() についてまとめます。メソッド fill() と混乱しやすい関数 full( ) についても一緒にまとめます。また関数 full() の特例として ones, zeros についても説明します。

fill(value) は既存の ndarray の全要素を引数で指定した値 value に設定します。具体例で見てみましょう。

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
print(x)
x.fill(100)
print(x)

#
# [[1 2 3]
#  [4 5 6]]
#
# [[100 100 100]
#  [100 100 100]]
#

これまでの例でも使っていた 2行3列 の行列に対して、fill() メソッドを用いてすべての要素を 100 に変更しています。簡単ですね。

次はメソッド fill() とよく似ていますが関数 full() です。fill(value) が既存の ndarray に対する操作であったのに対し、関数 full() は新規に指定された形状、データ型の配列を特定の値で埋めます。こちらも具体例で見てみましょう。

import numpy as np

x = np.full(3, 100)
print(x)

y = np.full((2, 3), 100)
print(y)

#
# [100 100 100]
#
# [[100 100 100]
#  [100 100 100]]
#

full(3, 100) で 3要素の ndarray で要素が 100 であるものを新規で作っています。次も同様で 2行3列の ndarray で要素が 100 であるものを新規で作っています。

full 関数で初期値を0 または 1 に指定してもよいのですが、zeros(), ones() という関数もあります。0 も 1 も同じなので zeros() の具体例を示します。

import numpy as np

x = np.zeros(3)
print(x)

y = np.zeros((2,3), dtype=np.int64)
print(y)

#
# [0. 0. 0.]
#
# [[0 0 0]
#  [0 0 0]]
#

zeros() で 0 に初期化すると要素の型がデフォルトで float64、つまり小数になります。そのため要素が 0. というように小数点を持っていますね。整数にしたい場合は型を指定する必要があります。ここでは形状を 2行3列と指定し型をnumpy.int64 と指定しました。

NumPy / ndarray のメソッドに関するまとめの続きは以下からどうぞ。

では、ごきげんよう。



この記事が気に入ったらサポートをしてみませんか?