セクション 3. 章 5
single
配列のフラット化
メニューを表示するにはスワイプしてください
フラット化とは、多次元配列を1次元配列に変換し、その内容を展開することを指します。
この操作は、配列の要素を一つずつ処理したい場合や、特定のアルゴリズムにデータをより適した形にしたい場合に有用です。
NumPyでフラット化を行う方法は3つあります:
ndarray.reshape(-1)メソッドまたはnumpy.reshape(array, -1)関数を使用する方法;ndarray.ravel()メソッドまたはnumpy.ravel(array)関数を使用する方法;ndarray.flatten()メソッドを使用する方法。
reshape(-1)
.reshape(-1)メソッドまたはreshape(array, -1)関数は、同じ要素数を持つ連続したフラットな配列を返します。
前章でも述べたように、-1は元の配列サイズに基づいて次元のサイズを自動的に計算します。shapeに単一の整数を渡すため、同じ要素数の1次元配列が返されます。
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
.reshape() メソッドまたは対応する関数は元の配列のビューを返すため、変形後の配列に加えた変更は元の配列にも反映されます。
flattened_array = np.reshape(array_2d, -1) をメソッド呼び出しの代わりに使用することもできます。
ravel()
ndarray.ravel() メソッドまたは numpy.ravel(array) 関数は reshape(-1) と同様に動作し、元の配列のビューも返します。
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d) は、メソッドを呼び出す代わりに使用可能。
ndarray.flatten()
元の配列のビューではなくコピーが必要な場合、.flatten() メソッドを使用。
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
注意
配列のビューをコピーして別のオブジェクトを作成し、このコピーを元の配列に影響を与えずに変更することが常に可能。
タスク
スワイプしてコーディングを開始
.flatten()メソッドを正しく使用してexam_scoresをフラット化し、その結果をexam_scores_flattenedに格納します。.reshape()メソッドを正しく使用してexam_scoresをフラット化し、その結果をexam_scores_reshapedに格納します。.ravel()メソッドを使用してexam_scoresをフラット化し、その結果をexam_scores_raveledに格納します。- 作成した3つのフラット化配列のうち、元の配列のビューではなくコピーであるものを選び、その最初の要素(正のインデックスを使用)に
100を代入します。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 5
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください