[Python]2次元配列の徹底解説|2次元配列の生成から行や列の追加について紹介
![[Python]2次元配列の徹底解説|2次元配列の生成から行や列の追加について紹介](https://www.fenet.jp/dotnet/column/wp-content/uploads/2020/08/pixta_64116394_M-1024x682.jpg)
- システム
エンジニア - Pythonの2次元配列ではどのようなことができるのでしょうか。
- プロジェクト
マネージャー - 2次元配列の生成、繰り返し処理などができます。
[Python]2次元配列の徹底解説
今回は、Pythonでの2次元配列の扱い方について説明します。ここでは、2次元配列の生成、繰り返し処理、変換、集計、ソート、転置、検索、行や列の追加について紹介します。
Pythonでの2次元配列の扱い方に興味のある方はぜひご覧ください。
生成
Pythonでの2次元配列の生成方法を紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 |
# 2次元配列の生成 array = [[11, 12, 13, 14, 15], [21, 22, 23, 24, 25]] print(array) # 2次元配列の生成(内包表記) array2 = [[i * 10 + j for j in range(1, 6)] for i in range(1, 3)] print(array2) |
実行結果は以下のようになります。
1 2 |
[[11, 12, 13, 14, 15], [21, 22, 23, 24, 25]] [[11, 12, 13, 14, 15], [21, 22, 23, 24, 25]] |
内包表記を使えばシンプルに記述できます。
繰り返し処理
Pythonでの2次元配列の繰り返し処理について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 |
# 2次元配列の生成 array = [[11, 12, 13, 14, 15], [21, 22, 23, 24, 25]] # forで全要素出力 for x in array: # X方向 for y in x: # Y方向 print(y) |
実行結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 |
11 12 13 14 15 21 22 23 24 25 |
2重のfor文で2次元配列の全要素が出力されていることが分かります。
変換
Pythonでの1次元配列から2次元配列への変換方法について紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 |
import numpy as np array = np.arange(1, 11) print(array) # NumPy配列を2次元に変換 print(array.reshape(2, 5)) |
実行結果は以下のようになります。
1 2 3 |
[ 1 2 3 4 5 6 7 8 9 10] [[ 1 2 3 4 5] [ 6 7 8 9 10]] |
集計
Pythonでの2次元配列の集計方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import numpy as np array = np.arange(1, 11) # NumPy配列を2次元に変換 array = array.reshape(2, 5) print(array) # 合計 print(np.sum(array)) # 55 # 列ごとの合計 print(np.sum(array, axis=0)) # [ 7 9 11 13 15] # 行ごとの合計 print(np.sum(array, axis=1)) # [15 40] # 平均 print(np.mean(array)) # 5.5 print(np.mean(array, axis=0)) # [3.5 4.5 5.5 6.5 7.5] print(np.mean(array, axis=1)) # [3. 8.] # 最小 print(np.min(array)) # 1 print(np.min(array, axis=0)) # [1 2 3 4 5] print(np.min(array, axis=1)) # [1 6] # 最大 print(np.max(array)) # 10 print(np.max(array, axis=0)) # [ 6 7 8 9 10] print(np.max(array, axis=1)) # [ 5 10] |
実行結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[[ 1 2 3 4 5] [ 6 7 8 9 10]] 55 [ 7 9 11 13 15] [15 40] 5.5 [3.5 4.5 5.5 6.5 7.5] [3. 8.] 1 [1 2 3 4 5] [1 6] 10 [ 6 7 8 9 10] [ 5 10] |
ソート
Pythonでの2次元配列のソート方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import numpy as np # 2次元配列の生成 array = [[12, 11, 15, 14, 13], [24, 22, 21, 25, 23]] print(array) # [[12, 11, 15, 14, 13], [24, 22, 21, 25, 23]] print(np.sort(array)) # [[11 12 13 14 15] # [21 22 23 24 25]] # 列のソート print(np.sort(array, axis=0)) # [[12 11 15 14 13] # [24 22 21 25 23]] # 行のソート print(np.sort(array, axis=1)) # [[11 12 13 14 15] # [21 22 23 24 25]] |
実行結果は以下のようになります。
1 2 3 4 5 6 7 |
[[12, 11, 15, 14, 13], [24, 22, 21, 25, 23]] [[11 12 13 14 15] [21 22 23 24 25]] [[12 11 15 14 13] [24 22 21 25 23]] [[11 12 13 14 15] [21 22 23 24 25]] |
転置
Pythonでの2次元配列の転置(行と列を入れ替える)方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import numpy as np # 2次元配列の生成 array = [[12, 11, 15, 14, 13], [24, 22, 21, 25, 23]] print(array) # [[12, 11, 15, 14, 13], [24, 22, 21, 25, 23]] # 行と列を置換(転置) array = np.array(array).T print(array) # [[12 24] # [11 22] # [15 21] # [14 25] # [13 23]] |
実行結果は以下のようになります。
1 2 3 4 5 6 |
[[12, 11, 15, 14, 13], [24, 22, 21, 25, 23]] [[12 24] [11 22] [15 21] [14 25] [13 23]] |
検索
Pythonでの2次元配列の検索について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import numpy as np # 2次元配列の生成 array = np.array([[12, 11, 15, 14, 13], [24, 22, 21, 25, 23], [34, 31, 33, 32, 35]]) print(array) # [[12 11 15 14 13] # [24 22 21 25 23] # [34 31 33 32 35]] # 1列目の値が31の行位置 print(np.where(array[:,1]==31)[0]) # [2] # 3列目の値が25の行位置 print(np.where(array[:,3]==25)[0]) # [1] |
実行結果は以下のようになります。
1 2 3 4 5 |
[[12 11 15 14 13] [24 22 21 25 23] [34 31 33 32 35]] [2] [1] |
行や列の追加
Pythonでの2次元配列の行や列の追加方法について紹介します。
実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import numpy as np # 2次元配列の生成 array = np.array([[12, 11, 15, 14, 13], [24, 22, 21, 25, 23], [34, 31, 33, 32, 35]]) print(array) # [[12 11 15 14 13] # [24 22 21 25 23] # [34 31 33 32 35]] # 行を追加 print(np.insert(array, 2, 99, axis=0)) # [[12 11 15 14 13] # [24 22 21 25 23] # [99 99 99 99 99] # [34 31 33 32 35]] # 列を追加 print(np.insert(array, 2, 99, axis=1)) # [[12 11 99 15 14 13] # [24 22 99 21 25 23] # [34 31 99 33 32 35]] |
実行結果は以下のようになります。
1 2 3 4 5 6 7 8 9 10 |
[[12 11 15 14 13] [24 22 21 25 23] [34 31 33 32 35]] [[12 11 15 14 13] [24 22 21 25 23] [99 99 99 99 99] [34 31 33 32 35]] [[12 11 99 15 14 13] [24 22 99 21 25 23] [34 31 99 33 32 35]] |
- システム
エンジニア - Pythonの2次元配列ではさまざまなことができるのですね。
- プロジェクト
マネージャー - 2次元配列の生成、繰り返し処理のほかにも、変換やソートなどができます。2次元配列をより理解するためにソースコードで実際に書いてみましょう。
まとめ
いかがでしたでしょうか。Pythonでの2次元配列の扱い方について説明しました。ここでは、2次元配列の生成、繰り返し処理、変換、集計、ソート、転置、検索、行や列の追加について紹介しました。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


Python新着案件New Job
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都豊島区(池袋駅)マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都豊島区(池袋駅)商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅)商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅)商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅)商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅)