プログラミングコンテストでは二次元配列を探索する問題がよく出題され、
その際に列を探索(縦方向の探索)したい場合があります。

そこで、ここでは python3 で簡単に二次元配列の列を抽出する方法を紹介します。

早速ですが、以下のコードで二次元配列の列を簡単に抽出しています。

import numpy as np

#探索したい二次元配列
array = [[1,2,3], 
         [4,5,6], 
         [7,8,9]]

#numpy array に変換
Array = np.array(array)

#それぞれの列を抽出
column1 = Array[:, 0]
column2 = Array[:, 1]
column3 = Array[:, 2]

print(column1) 
# --> [1 4 7]
print(column2)
# --> [2 5 8]
print(column3)

最大のポイントは numpy をインポートしているところです。

numpy を使用すれば、例えば、

column1 = Array[:, 0]

という表記で、Array という配列 0列目column1 という変数 に代入することができています。

[ : , 0 ]

という表現の右側の数字で、抽出したい列を指定してることになります。


ということは、ここでは余談になりますが、行を抽出したい場合は、

[ 0 , : ]

のように書けば良いことになります。
以下がそのコードです。

import numpy as np

array = [[1,2,3], 
         [4,5,6], 
         [7,8,9]]

Array = np.array(array)

row1 = Array[0, :]
row2 = Array[1, :]
row3 = Array[2, :]


print(row1) 
# --> [1 2 3]
print(row2)
# --> [4 5 6]
print(row3)
# --> [7 8 9]


以上が、python3 で簡単に二次元配列の列を抽出する方法でした。

お役に立てれば嬉しいです。

一応、forループ で連続して列を抽出して表示させるコードを載せておきます。

import numpy as np

#列数
N = 3
#探索したい二次元配列
array = [[1,2,3], 
         [4,5,6], 
         [7,8,9]]

#numpy array に変換
Array = np.array(array)

for n in range(N):
    column = Array[:, n] #列を変数n で指定
    print(column)