配列を転置する
より
Spreadsheetで転置して貼り付けたいときあるもんね。
function transpose(a) { // Calculate the width and height of the Array var w = a.length || 0; var h = a[0] instanceof Array ? a[0].length : 0; // In case it is a zero matrix, no transpose routine needed. if(h === 0 || w === 0) { return []; } /** * @var {Number} i Counter * @var {Number} j Counter * @var {Array} t Transposed data is stored in this array. */ var i, j, t = []; // Loop through every item in the outer array (height) for(i=0; i<h; i++) { // Insert a new row (array) t[i] = []; // Loop through every item per item in outer array (width) for(j=0; j<w; j++) { // Save transposed data. t[i][j] = a[j][i]; } } return t; }
pythonならどうだろうと思って調べた。
import numpy as np Array =np.array(【転置したい行列】) Transposed_Array = Array.T Listed_transposed_Array =Transposed_Array.tolist()
numpyでリストを行列にして転置してまたリストに直すだけ
て簡単だった。
やはりPythonスゴイ
て思ったらUnderscore.jsというライブラリがあるらしい
var _ = Underscore.load(); var Transposed_Array = _.zip.apply(_,【転置したい配列】);
2行だったwjsのがすごいじゃねーか