✨
PythonとJavaScriptで転置をするときの違い
例
# before
| 1 2 3 |
| 4 5 6 |
→
# before
| 1 4 |
| 2 5 |
| 3 6 |
import numpy as np
def transpose(matrix):
arr = np.array(matrix)
r,c = arr.shape
return arr.T.reshape((c,r)).tolist()
Python
の場合 numpy
を使えば比較的楽に実装可能。
reshape
で値を取得し、転置を行なってからreshapeすることで値を取得することが可能となる。
pythonの場合、
const transpose = matrix => matrix[0].map((_,c) => matrix.map(r => r[c]))
Python
のように パッケージがないので自分でそのような処理を実装可能。
例えば2行3列の配列であれば転置後は3行2列の配列となる。
そのため、ループとして繰り返す回数は3回となる。 matrix[0]
で 3列分のデータを取得することができるが、ここが実際にほしいのはその試行回数であるので _,c
引数はインデックスを取得している。
その後、そのmapの内部でインデックスがcに該当するものだけを呼べば3行2列のリストとなる。
Discussion