NumPy の形状操作

NumPyNumPyBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、NumPy配列の形状を操作するためのNumPy形状操作関数を学びます。

到達目標

  • 配列の形状変更
  • 配列の連結と分割
  • 配列の転置

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL numpy(("NumPy")) -.-> numpy/ArrayBasicsGroup(["Array Basics"]) numpy(("NumPy")) -.-> numpy/ArrayManipulationGroup(["Array Manipulation"]) numpy/ArrayBasicsGroup -.-> numpy/multi_array("Multi-dimensional Array Creation") numpy/ArrayBasicsGroup -.-> numpy/shape_dim("Shapes and Dimensions") numpy/ArrayManipulationGroup -.-> numpy/reshape("Reshape") numpy/ArrayManipulationGroup -.-> numpy/transpose("Transpose and Axis Swap") numpy/ArrayManipulationGroup -.-> numpy/merge("Merge") numpy/ArrayManipulationGroup -.-> numpy/split("Split") subgraph Lab Skills numpy/multi_array -.-> lab-214{{"NumPy の形状操作"}} numpy/shape_dim -.-> lab-214{{"NumPy の形状操作"}} numpy/reshape -.-> lab-214{{"NumPy の形状操作"}} numpy/transpose -.-> lab-214{{"NumPy の形状操作"}} numpy/merge -.-> lab-214{{"NumPy の形状操作"}} numpy/split -.-> lab-214{{"NumPy の形状操作"}} end

配列の形状変更

reshape関数を使うと、NumPy配列の形状を変更できます。reshape関数の構文は以下の通りです。

np.reshape(a, new_shape)
  • ここで、aは入力配列で、new_shapeは配列の望ましい新しい形状です。

Pythonシェルを開く

ターミナルに次のコマンドを入力してPythonシェルを開きます。

python3

NumPyをインポートする

NumPyは既にインストールされていますので、Pythonコードでインポートできます。

import numpy as np

配列を作成する

例として、形状(2, 3)の配列aを作成します。

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

出力:

(2, 3)

reshapeを使う

この配列をreshape関数を使って形状(3, 2)に変更できます。

b = np.reshape(a, (3, 2))
print(b.shape)
print(b)

出力:

(3, 2)
[[1 2]
 [3 4]
 [5 6]]

配列の連結と分割

NumPyには、配列を連結するための2つの関数が用意されています。

  1. np.concatenate:指定された軸に沿って配列を連結する
  2. np.stack:新しい軸に沿って配列を連結する

np.split関数を使って配列を分割できます。

配列の連結

例として、2つの配列abを作成します。

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

concatenateを使う

np.concatenate関数を使って、これらの配列を最初の軸(0)に沿って連結できます。

c = np.concatenate((a, b))
print(c)

出力:

[1 2 3 4 5 6]

stackを使う

np.stack関数を使って、これらの配列を新しい軸に沿って連結することもできます。

d = np.stack((a, b))
print(d)
print(d.shape)

出力:

[[1 2 3]
 [4 5 6]]
(2, 3)

配列の分割

例として、形状(6,)の配列aを作成します。

a = np.array([1, 2, 3, 4, 5, 6])

splitを使う

np.split関数を使って、この配列を長さ3の2つの配列に分割できます。

b, c = np.split(a, 2)
print(b)
print(c)

出力:

[1 2 3]
[4 5 6]

配列の転置

transpose関数を使うと、NumPy配列の軸を転置できます。transpose関数の構文は以下の通りです。

a.transpose([axis1, axis2,...])
  • ここで、axis1axis2などは転置する軸です。

配列を作成する

例として、形状(2, 3)の配列aを作成します。

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

出力:

[[1 2 3]
 [4 5 6]]
(2, 3)

転置を使う

transpose関数を使ってこの配列を転置できます。

b = a.transpose()
print(b)
print(b.shape)

出力:

[[1 4]
 [2 5]
 [3 6]]
(3, 2)

また、配列の特定の軸を転置することもできます。たとえば、次のコードを使って、配列aの軸を転置して形状(3, 2)にすることができます。

c = a.transpose(1, 0)
print(c)
print(c.shape)

出力:

[[1 4]
 [2 5]
 [3 6]]
(3, 2)

まとめ

おめでとうございます!あなたはNumPy形状操作実験を完了しました。

この実験では、NumPy形状操作関数reshapeconcatenatestacksplit、およびtransposeを学びました。これらの関数を使うと、NumPy配列の形状を操作でき、多くのデータ操作タスクに欠かせないものです。