最近ちょっと配列操作のアルゴリズムが気になったのでちょっとここでまとめてみます。
PHP
function transverse_matrix($array){ return call_user_func_array('array_map',array_merge(array(null),$array)); }
何が起こっているかはわかりませんが、PHPの場合これで転置できます。 ただ速さは測定していません。。。
python
numpyだとめっちゃシンプルです。
array = [[1, 2], [3, 4]] array_transverse = np.array(array).T
zip 関数を使うのもあるそう。
l_2d = [[0, 1, 2], [3, 4, 5]] l_2d_t = [list(x) for x in zip(*l_2d)]
go
go言語でも以下のように.T()
で転置できるみたいです。便利ですね。。。!
x := []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} A := mat.NewDense(3, 4, x) B := A.T() matPrint(B) // ⎡1 5 9⎤ // ⎢2 6 10⎥ // ⎢3 7 11⎥ // ⎣4 8 12⎦