NumPy の形状操作

NumPyNumPyBeginner

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

はじめに

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

到達目標

  • 配列の形状変更
  • 配列の連結と分割
  • 配列の転置
これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 100%です。学習者から 100% の好評価を得ています。

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 配列の形状を操作でき、多くのデータ操作タスクに欠かせないものです。

OSZAR »