Python NumPy / ndarray のメソッド #1

株式会社リュディアです。今回も NumPy についてまとめていきます。今回から ndarray のメソッドについてまとめていきます。

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

ndarray にはたくさんのメソッドがありますが大きく以下の4 つに分類されています。

Array conversion

Shape manipulation

Item selection and manipulation

Calculation

全メソッドの解説をしていると大変なのでよく使うものだけリストアップしてまとめを行います。まず最初は Array conversion に分類されるメソッドについてまとめていきます。

ndarray.tolist()

tolist() は NumPy の ndarray を Python 標準のリストに変換するメソッドです。NumPy は Python 標準データ型との互換性を捨てて高速な行列計算を実現するためのライブラリセットです。計算終了後 Python 標準のデータ型に変換したい場合には tolist() を使います。以下のサンプルコードを見てください。

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
print(x)
print(x.tolist())
#
# [[1 2 3]
#  [4 5 6]] <class 'numpy.ndarray'>
#
# [[1, 2, 3], [4, 5, 6]] <class 'list'>
#

変数 x は numpy の ndarray オブジェクト <class 'numpy.ndarray'> ですが、tolist() メソッドで変換した後は Python 標準の <class 'list'> であることがわかりますね。

ndarray.item(*args), ndarray.itemset(*args)

item(*args)ndarray の特定の要素を指定して表示するためのメソッドです。具体例を見た方が早いと思いますので以下のコードを見てください。

import numpy as np

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

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

コードを順に見ていきましょう。ndarray を 1 列に並べたと仮定し、item(3) とすると 0 から数えて 3番目、つまり 4 を返します。

item(1, 1) は行、列とも 0 から数えて 1行 1列 の要素、つまり 5 を返します。

itemset(*args) は ndarray の特定の要素を指定して変更するためのメソッドです。こちらも具体例を見ていきましょう。

import numpy as np

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

print(x.item(3))
x.itemset(3, 10) # 0から数えて 3番目の要素を10に上書き
print(x)

print(x.item(1,1))
x.itemset((1, 1), 20) # 0から数えて 1行1列の要素を 20 に上書き
print(x)

#
# [[1 2 3]
#  [4 5 6]]
#
# 4
# [[ 1  2  3]
# [10  5  6]]
#
# 5
# [[ 1  2  3]
# [10 20  6]]
#

コードを順に見ていきましょう。ndarray を 1列に並べたと仮定し、itemset(3, 10) は 0から数えて3番目、つまり現在は 4 であるところを 10 に書き換えるということになります。実際 print(x) の出力結果を見ると、そのように書き換えられていることが確認できますね。

同様にitemset((1, 1), 20) は行、列とも 0 から数えて 1行 1列 の要素、つまり現在は 5 であるところを 20 に書き換えるということになります。実際 print(x) の出力結果を見ると、そのように書き換えられていることが確認できますね。

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

では、ごきげんよう。




いいなと思ったら応援しよう!