Commit 9b102854 authored by Dr.李's avatar Dr.李

update one more database

parent d7f8463a
......@@ -39,7 +39,6 @@
"benchmark = 'zz500'\n",
"\n",
"prod_factors = ['VAL', 'BDTO', 'RVOL', 'CFinc1', 'CHV']\n",
"product_weights = np.array([3., 1., 1., 0.5, 0.5])\n",
"\n",
"factor_list = ','.join([factor_table + '.' + f for f in prod_factors])\n",
"\n",
......@@ -58,11 +57,10 @@
},
"outputs": [],
"source": [
"sql_template = 'select {factor_list}, factor_data.申万一级行业, {trade_table}.Return as dailyReturn, {risk_table}.*, 1 as Market ' \\\n",
" 'from {factor_table}, factor_data, trade_data, {risk_table} ' \\\n",
" 'where factor_data.Date = {factor_table}.Date and factor_data.Code = {factor_table}.Code ' \\\n",
" 'and factor_data.Date = trade_data.Date and factor_data.Code = trade_data.Code ' \\\n",
" 'and factor_data.Date = {risk_table}.Date and factor_data.Code = {risk_table}.Code;'"
"sql_template1 = 'select {factor_list},{trade_table}.Return as dailyReturn, {risk_table}.* ' \\\n",
" 'from {factor_table}, trade_data, {risk_table} ' \\\n",
" 'where {factor_table}.Date = trade_data.Date and {factor_table}.Code = trade_data.Code ' \\\n",
" 'and {factor_table}.Date = {risk_table}.Date and {factor_table}.Code = {risk_table}.Code;'"
]
},
{
......@@ -72,12 +70,26 @@
"outputs": [],
"source": [
"%%time\n",
"sql = sql_template.format(factor_list=factor_list,\n",
" factor_table=factor_table,\n",
" risk_table=risk_table,\n",
" trade_table=trade_table)\n",
"sql1 = sql_template1.format(factor_list=factor_list,\n",
" factor_table=factor_table,\n",
" risk_table=risk_table,\n",
" trade_table=trade_table)\n",
"\n",
"factor_df = pd.read_sql(sql, engine)"
"sql2 = 'select * from factor_data'\n",
"\n",
"# factor_df1 = pd.read_sql(sql1, engine)\n",
"# common_factor_df = pd.read_sql(sql2, engine)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"factor_df = pd.read_hdf('factor_data.hdf', 'all')"
]
},
{
......@@ -123,7 +135,8 @@
"metadata": {},
"outputs": [],
"source": [
"risk_factor_cols = raw_df.columns[9:-1]\n",
"risk_factor_cols = raw_df.columns[8:35]\n",
"ob_risk_factor_cols = risk_factor_cols.copy()\n",
"risk_factor_cols"
]
},
......@@ -135,7 +148,7 @@
},
"outputs": [],
"source": [
"df = raw_df.copy()"
"common_factor = raw_df.columns[38:-1]"
]
},
{
......@@ -146,7 +159,7 @@
},
"outputs": [],
"source": [
"df['d1ret'] = df.dailyReturn.groupby(df.Code).shift(-2)"
"df = raw_df.copy()"
]
},
{
......@@ -156,6 +169,15 @@
"collapsed": true
},
"outputs": [],
"source": [
"df['d1ret'] = df.dailyReturn.groupby(df.Code).shift(-2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"benchmark_data = pd.read_sql('select {0}, Date from index_data'.format(benchmark), engine)"
]
......@@ -193,6 +215,106 @@
"df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calculate Market Risk\n",
"--------------------------"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"engine = sqlalchemy.create_engine('mysql+pymysql://sa:we083826@10.63.6.176/multifactor?charset=utf8')\n",
"\n",
"window = 250\n",
"return_data = pd.read_sql('select Date, Code, Price, `Return` from trade_data', engine)\n",
"return_pivot = return_data.pivot_table('Price', 'Date', 'Code')\n",
"return_pivot.fillna(method='pad', inplace=True)\n",
"return_pivot = return_pivot / return_pivot.shift(1) - 1.\n",
"index_data = benchmark_data.set_index('Date')\n",
"\n",
"full_df = pd.merge(return_pivot, index_data, left_index=True, right_index=True)\n",
"del full_df['zz500']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"corr_table = full_df.rolling(window=window).corr(full_df['ret'])\n",
"std_table = full_df.rolling(window=window).std()\n",
"\n",
"beta_table = std_table.copy()\n",
"for col in full_df.columns:\n",
" beta_table[col] = corr_table[col] * std_table[col] / std_table['ret']\n",
"beta_table = beta_table.stack().reset_index()\n",
"\n",
"beta_table.columns = ['Date', 'Code', 'market']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"beta_table.to_hdf('factor_data.hdf', 'beta')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.merge(df, beta_table, on=['Date', 'Code'], how='inner')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"analysis_factors = prod_factors + ['Size']\n",
"analysis_factors_weights = np.array([3., 1., 1., 0.5, 0.5, 3.])\n",
"\n",
"ob_risk_factor_cols = ob_risk_factor_cols.append(pd.Index(['market']))\n",
"risk_factor_cols = ob_risk_factor_cols.difference(analysis_factors)\n",
"risk_factor_cols = risk_factor_cols.unique()\n",
"ob_risk_factor_cols = ob_risk_factor_cols.unique()\n",
"risk_factor_cols"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ob_risk_factor_cols"
]
},
{
"cell_type": "code",
"execution_count": null,
......@@ -252,16 +374,10 @@
},
"outputs": [],
"source": [
"total_data.loc[:, risk_factor_cols] = total_data[risk_factor_cols].groupby(total_data.Date).transform(lambda x: x / x.sum())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"risk_factor_cols"
"y = total_data[common_factor].values\n",
"groups = total_data.Date.values.astype(np.int)\n",
"\n",
"total_data[common_factor] = st.standardize(ws.winsorize_normal"
]
},
{
......@@ -272,8 +388,7 @@
},
"outputs": [],
"source": [
"y = total_data[prod_factors].values\n",
"groups = total_data.Date.values.astype(np.int)"
"y = total_data[analysis_factors].values"
]
},
{
......@@ -288,7 +403,7 @@
" groups=groups),\n",
" groups)\n",
"\n",
"total_data['res'] = neutralized_values @ product_weights"
"total_data['res'] = neutralized_values @ analysis_factors_weights"
]
},
{
......@@ -297,7 +412,7 @@
"metadata": {},
"outputs": [],
"source": [
"total_data[['res', 'Date', 'Code']].tail()"
"total_data.tail()"
]
},
{
......@@ -330,27 +445,29 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"metadata": {},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_long_short, axis=0)"
"to_look_into = total_data[ob_risk_factor_cols].multiply(total_data.pos_long_short, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().max()"
"to_look_into.groupby(total_data.Date).sum()['Size'].plot(figsize=(14,7))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
......@@ -370,7 +487,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
......@@ -379,7 +498,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
......@@ -388,7 +509,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data.pos_long_short.groupby(total_data.Date).apply(lambda x: x.sum()).head()"
......@@ -416,7 +539,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
......@@ -427,7 +552,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data[['pos_100', 'res', 'dailyReturn', 'd1ret', 'd1ret_b', 'Code', 'Date']].tail()"
......@@ -441,22 +568,26 @@
},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_100 - total_data[index_components], axis=0)"
"to_look_into = total_data[ob_risk_factor_cols].multiply(total_data.pos_100 - total_data[index_components], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().max()"
"to_look_into.groupby(total_data.Date).sum()['Size'].plot(figsize=(14,7))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
......@@ -476,7 +607,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
......@@ -485,7 +618,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
......@@ -494,7 +629,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data.pos_100.groupby(total_data.Date).sum().head()"
......@@ -533,7 +670,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
......@@ -552,7 +691,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(total_data['pos_100_uind'] > 0).groupby(total_data.Date).sum().plot(figsize=(14, 7))"
......@@ -566,22 +707,26 @@
},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_100_uind - total_data[index_components], axis=0)"
"to_look_into = total_data[ob_risk_factor_cols].multiply(total_data.pos_100_uind - total_data[index_components], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().max()"
"to_look_into.groupby(total_data.Date).sum()['Size'].plot(figsize=(14,7))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
......@@ -590,7 +735,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data[['pos_100_uind', 'res', 'dailyReturn', 'd1ret', 'd1ret_b', 'Code', 'Date']].tail()"
......@@ -610,7 +757,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
......@@ -619,7 +768,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
......@@ -628,7 +779,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data.pos_100_uind.groupby(total_data.Date).sum().head()"
......@@ -667,15 +820,15 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
"\n",
"lbound_exposure = -0.00001 * np.ones(len(risk_factor_cols))\n",
"ubound_exposure = 0.00001 * np.ones(len(risk_factor_cols))\n",
"lbound_exposure[-2] = -0.01\n",
"ubound_exposure[-2] = 0.01\n",
"lbound_exposure = -1e-3 * np.ones(len(risk_factor_cols))\n",
"ubound_exposure = 1e-3 * np.ones(len(risk_factor_cols))\n",
"\n",
"def get_benchmark_match_pos(x):\n",
" er = x.res.values\n",
......@@ -705,7 +858,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(total_data['pos_bmat'] > 1e-4).groupby(total_data.Date).sum().plot(ylim=(50, 250), figsize=(14, 7))"
......@@ -719,22 +874,26 @@
},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_bmat - total_data[index_components], axis=0)"
"to_look_into = total_data[ob_risk_factor_cols].multiply(total_data.pos_bmat - total_data[index_components], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().max()"
"to_look_into.groupby(total_data.Date).sum()['Size'].plot(figsize=(14,7))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
......@@ -743,7 +902,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data[['pos_bmat', 'res', 'dailyReturn', 'd1ret', 'd1ret_b', 'Code', 'Date']].tail()"
......@@ -763,7 +924,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
......@@ -772,7 +935,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
......@@ -824,7 +989,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sharp_mat.plot(figsize=(14, 7))"
......@@ -868,16 +1035,20 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_pos_table.loc[aggregated_pos_table['申万一级行业'] == '申万家用电器',['pos_long_short', 'pos_100', 'pos_100_uind', 'pos_bmat']].plot(figsize=(16,7))"
"aggregated_pos_table.loc[aggregated_pos_table['申万一级行业'] == '申万化工',['pos_long_short', 'pos_100', 'pos_100_uind', 'pos_bmat']].plot(figsize=(16,7))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_pos_table[['pos_long_short', 'pos_100', 'pos_100_uind', 'pos_bmat']].corr()"
......@@ -886,7 +1057,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"turn_over_table = {}\n",
......@@ -904,7 +1077,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"turn_over_table.plot(figsize=(14, 7))"
......@@ -913,7 +1088,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(turn_over_table * 0.0015).plot(figsize=(14, 7))"
......@@ -922,7 +1099,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(turn_over_table[-60:].cumsum() * 0.0015).plot(figsize=(14, 7))"
......@@ -957,7 +1136,7 @@
"source": [
"net_weight = total_data.pos_long_short\n",
"next_bar_return_series = total_data.d1ret\n",
"risk_table = total_data[risk_factor_cols]\n",
"risk_table = total_data[ob_risk_factor_cols]\n",
"net_weight.index = total_data.Date\n",
"next_bar_return_series.index = total_data.Date\n",
"risk_table.index = total_data.Date"
......@@ -966,7 +1145,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
......@@ -987,7 +1168,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
......@@ -997,7 +1180,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
......@@ -1006,7 +1191,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
......@@ -1036,7 +1223,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
......@@ -1057,7 +1246,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
......@@ -1067,7 +1258,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
......@@ -1076,7 +1269,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
......@@ -1106,7 +1301,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
......@@ -1127,7 +1324,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
......@@ -1137,7 +1336,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
......@@ -1146,7 +1347,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
......@@ -1176,7 +1379,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
......@@ -1197,7 +1402,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
......@@ -1207,7 +1414,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
......@@ -1216,7 +1425,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
......@@ -1241,6 +1452,114 @@
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment