ここではNumPyにおける配列をコピーする方法について解説しています。
この記事の対象
copy関数とは
copy関数は、NumPy配列を新たなメモリ領域にコピーします。これにより、元の配列とコピーした配列が独立して操作できるようになります。
基本的な型
np.copy(x)
基本的な型としては「.copy()」の中に複製したい配列を入れるだけです。
使用例
import numpy as np
b = np.arange(10)
print(b)
c = np.copy(b)
print("↓↓↓↓↓↓↓↓↓↓")
print(c)
#[0 1 2 3 4 5 6 7 8 9]
#↓↓↓↓↓↓↓↓↓↓
#[0 1 2 3 4 5 6 7 8 9]
上記のプログラムは0~9までの配列を作成してそれを複製する内容になっています。
結果として、同じ配列になっていることが確認できます。
numpy.ndarray.copy()
配列オブジェクトのメソッドとしても利用可能です。
import numpy as np
#1---NumPy配列を作成
arr_original = np.array([1, 2, 3, 4, 5])
#2—--コピーを作成
arr_copy = arr_original.copy()
#3---コピーした配列の要素を変更しても、元の配列には影響しない
arr_copy[0] = 10
print("Original Array:", arr_original)
print("Copied Array:", arr_copy)
スライシング
スライシングを使用してもコピーが作成できます。
import numpy as np
# NumPy配列を作成
arr_original = np.array([1, 2, 3, 4, 5])
# コピーを作成
arr_copy = arr_original[:]
# コピーした配列の要素を変更しても、元の配列には影響しない
arr_copy[0] = 10
print("Original Array:", arr_original)
print("Copied Array:", arr_copy)
numpy.copyto()
配列を別の配列にコピーするための関数です。
import numpy as np
# 元の配列
arr_original = np.array([1, 2, 3, 4, 5])
# コピー先の配列を作成
arr_copy = np.array([0, 0, 0, 0, 0])
# copyto関数を使用して元の配列をコピー
np.copyto(arr_copy, arr_original)
print("Original Array:", arr_original)
print("Copied Array:", arr_copy)
copy関数や関連する方法を使用することで、NumPy配列を安全にコピーして操作できます。これにより、元の配列への予期しない変更を回避できます。