次回より『ヒデログ』とご検索ください

【Python入門】Numpy配列のスライシングの使い方

Numpyのスライシングの使い方を解説します。

Numpyのスライシング

NumpyのスライシングとはNumpyの配列(の一部)から値を「参照」渡しでで渡すことを指します。「参照」渡しであることが重要なポイントです。「値」渡しにすることは出来ます。合わせて解説します。

スライシングで値を取得

arr[n:m]:nからm-1の要素を取得する。

import numpy as np
arr=np.arange(10)
arr
>>array([0,1,2,3,4,5,6,7,8,9])

#arr[n:m]:arrのnからm-1を取得する
arr[2:5]
>>array([2,3,4])

arr[2]
>>2

arr[4]
>>4

arr[5]
>>5

スライシングは参照渡し

import numpy as np
arr=np.arange(10)
arr
>>array([0,1,2,3,4,5,6,7,8,9])

arr_ref=arr[2:5]
arr_ref
>>array([2,3,4])

# arr[3]の値が100に変わる
arr_ref[1]=100
arr_ref
>>array([2,100,4])

arr
# arr[3]の値が100になっている
array([0,1,2,100,4,5,6,7,8,9])

値渡しにするには?

値渡しにするにはスライスするときに「.copy()」を明示的に示す時に

import numpy as np
arr=np.arange(10)
#スライシングする時に「.copy()」を付ける
arr_val=arr[2:5].copy()

arr_val
>>array([2, 3, 4])

arr_val[1]=100

arr
>>array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

まとめ

Numpyのスライシングについて解説しました。スライシングは参照渡しで、値渡しにするには別途値渡しであることを明示する必要がありました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です