MatlabスクリプトをPythonに移植しています。以下は抜粋です:
%// Create a list of unique trade dates
DateList = unique(AllData(:,1));
%// Loop through the dates
for DateIndex = 1:size(DateList,1)
CalibrationDate = DateList(DateIndex);
%// Extract the data for a single cablibration date (but all expiries)
SubsetIndices = ismember(AllData(:,1) , DateList(DateIndex)) == 1;
SubsetAllExpiries = AllData(SubsetIndices, :);
AllData
はN行6列のセルマトリックスで、最初の2列は日付(文字列)で、他の4列は数値です。Pythonでは、このデータをcsvから取得するので、次のようになります。
import numpy as np
AllData = np.recfromcsv(open("MyCSV.csv", "rb"))
ですから、私が間違っていなければAllData
、普通のタプルの配列がたくさんあります。これは、このデータを入れるのに最適な形式ですか?目標は、列1から一意の日付のリストを抽出し、各日付について、列1にその日付の行を抽出することです(列1は順序付けられています)。次に、列1の各行について、残りの5列の数値と日付についていくつかの計算を行います。
したがって、matlabでは、日付のリストを取得unique(AllData(:,1))
できます。次に、次のように、その日付に対応するレコード(行)を取得できます(つまり、その日付が1列目に含まれます)。
SubsetIndices = ismember(AllData(:,1) , MyDate) == 1;
SubsetAllExpiries = AllData(SubsetIndices, :);
Pythonで同じ結果を最もよく達成するにはどうすればよいですか?