b-monster に一ヶ月行ってみた
b-monster に一ヶ月行ってみたので簡単にまとめてみました。
結論Q & A
Q1. 痩せた ?
A1. -4kg
Q2. 食事制限をした?
A2. 三週目から糖質制限を開始した。後述するが、そこから一気に体重が落ちた。
Q3. ウエストは?
A3. 所謂、メタボだったが、驚異の-7cm
Q4. 入るのおすすめ?
A4. 絶対おすすめ
以下、無駄なことを多く書くので面倒な人は回れ右してとりあえずb-monsterに入会しよう
背景
- [性別] 男
- [元の体重] 74-75kg
- [元のウエスト] 87cm(メタボ)
- [運動の頻度] 週0
- [動機] 彼女「いい加減痩せろ、痩せなきゃ別れる」
- [入会のきっかけ] 彼女が通って痩せた
上記のように至急痩せる必要があったのだが、「やばい、忙しいから長い時間運動はできない... しかし、時々走ったりしても痩せなかったから何かキツイ運動をしなきゃなあ 」と考えていたのだが、45分間で最大1000キロカロリー消費することができると聞き、入会を決意した。
パフォーマーさんのレビュー
この記事を見た人が入会するきっかけになれば、と思い僕の各パフォーマーさん(のプログラム)の個人的感想を書きます。 本当に僕の個人的感想でしかないので、参考にする程度でお願いいたします。
ちなみに順番は適当
各パフォーマーさんにそれぞれ何種類かプログラムがあるが、あまり思い出せないので、覚えている印象で話します。
YUUHIさん
- 熱い
- 最前列だとラッシュパートの時、とても熱く励ましてくれる。そのおかげで追い込めるので、強くおすすめしたい
- プログラムは単純なコンビネーションが多く、また繰り返しも多いので始めたばかりの人もやりやすい
- サーキットパートのダブルクランチはマジきつくて僕には無理です
- [備考] 歌う
SOHさん
- 背がとても高い爽やかなイケメンである(基本的にパフォーマーはみんな美男美女であるが)
- 人気(多分)
- この人も良く励ましてくれるので楽しい(Don't Stop !!!! などとサボるとよく言われる)。
REIさん
- 所謂、暗闇ボクササイズ?っぽい
- 非常に多くジャブを打つ印象
- 詳しく覚えていないがボクシングをやっていたのか、フォームがかっこいい
- ラッシュの時二列目でも励ましにきてくれたのを覚えている
- ボクササイズっぽいプログラムで楽しかったので、この人のプログラムを受けて入会を決意した
KAIYAさん
- プログラムが初見殺しだが、できるようになるとめちゃくちゃ楽しい
- この人のMJプログラムは、他のプログラムとは全然違い(極めて個人的な感想)、一番楽しいプログラムである
- コンビネーションがステップやバウンスなど、足を動かしながらの構成が多く、飛ぶことによってリズムを取るのが楽しい。
- 速い。何もかもが速い。
- パンチかっこいい。
MARIさん
- スクワット系(足に効く)のメニューが多い(痩せるならスクワットと聞くので、痩せたい人にはいいんじゃないかと)
- 女性パフォーマーに多くあるツイスト系のも多い
- 勿論、綺麗である
NENEさん
- 彼女「めっちゃ綺麗でモチベーションがあがる!! 理想の身体!!!」
- ツイスト系、スクワット系が多い
xtensorでcsvファイル読み込み
学生です、バイトしたいです
C++ でデータ分析の勉強中です 今日はxtensorでcsvファイルを読み込む方法を一応メモ
#include <iostream> #include<string> #include<fstream> #include "xtensor/xarray.hpp" #include "xtensor/xio.hpp" #include "xtensor/xview.hpp" #include "xtensor/xcsv.hpp" std::ifstream ifs("datasets/mysample.csv"); xt::xcsv_tensor<double> arr = xt::load_csv<double>(ifs); std::cout << arr;
{{ 0., 8306., 418971.},
{ 1., 6502., 398123.},
{ 2., 9984., 314188.},
{ 3., 3661., 294206.},
{ 4., 8604., 227276.},
{ 5., 8308., 216597.},
{ 6., 4597., 213376.},
{ 7., 7974., 211277.},
{ 8., 4188., 205661.},
{ 9., 5020., 204065.},
{ 10., 7203., 195476.},
{ 11., 3436., 193099.},
{ 12., 3793., 192359.},
{ 13., 8411., 190834.},
{ 14., 6758., 188650.},
{ 15., 6301., 186052.},
{ 16., 8750., 173517.},
{ 17., 4755., 159607.},
{ 18., 7270., 157577.},
{ 19., 8058., 156567.},
{ 20., 8316., 155541.},
{ 21., 3656., 148888.},
{ 22., 7940., 147352.},
{ 23., 3402., 146399.},
{ 24., 4503., 146365.},
{ 25., 2914., 146003.},
{ 26., 7267., 141316.},
{ 27., 6752., 140374.},
{ 28., 7261., 139152.},
{ 29., 7186., 138668.},
{ 30., 3825., 137742.},
{ 31., 3810., 137667.},
{ 32., 1570., 136399.},
{ 33., 8802., 136213.},
{ 34., 6503., 136019.},
{ 35., 5401., 135692.},
{ 36., 5411., 132910.},
{ 37., 9432., 131192.},
{ 38., 8002., 130224.},
{ 39., 8801., 128881.},
{ 40., 3667., 124909.},
{ 41., 2432., 122169.},
{ 42., 8001., 122088.},
{ 43., 7201., 120819.},
{ 44., 6326., 119779.},
{ 45., 6501., 119476.},
{ 46., 9437., 117868.},
{ 47., 1605., 117667.},
{ 48., 7269., 115749.},
{ 49., 8031., 114572.},
{ 50., 4528., 114312.},
{ 51., 6702., 114261.},
{ 52., 2503., 111533.},
{ 53., 8591., 111404.},
{ 54., 7202., 110461.},
{ 55., 4452., 109186.},
{ 56., 8795., 107823.},
{ 57., 3092., 106870.},
{ 58., 7751., 106361.},
{ 59., 8035., 102908.},
{ 60., 3853., 102540.},
{ 61., 6479., 100873.},
{ 62., 8309., 97120.},
{ 63., 8766., 97103.},
{ 64., 2802., 96490.},
{ 65., 6857., 96436.},
{ 66., 9433., 95839.},
{ 67., 5802., 94884.},
{ 68., 8725., 94555.},
{ 69., 4502., 93994.},
{ 70., 8630., 93890.},
{ 71., 9064., 93290.},
{ 72., 9201., 93022.},
{ 73., 4004., 92159.},
{ 74., 9503., 91625.},
{ 75., 6471., 91009.},
{ 76., 8732., 90398.},
{ 77., 4579., 89816.},
{ 78., 4063., 89395.},
{ 79., 7717., 89215.},
{ 80., 3672., 87644.},
{ 81., 4288., 87455.},
{ 82., 8053., 86120.},
{ 83., 1357., 85734.},
{ 84., 8113., 84550.},
{ 85., 7211., 83858.},
{ 86., 4568., 83360.},
{ 87., 5108., 82943.},
{ 88., 2351., 82526.},
{ 89., 7011., 81585.},
{ 90., 6723., 81403.},
{ 91., 1928., 81236.},
{ 92., 7272., 79201.},
{ 93., 3382., 78057.},
{ 94., 6976., 77774.},
{ 95., 9024., 77145.},
{ 96., 4911., 76910.},
{ 97., 3401., 75623.},
{ 98., 4507., 75543.},
{ 99., 6971., 75266.},
{ 100., 2181., 75221.},
{ 101., 5406., 74887.},
{ 102., 4578., 74312.},
{ 103., 1925., 73744.},
{ 104., 6902., 73557.},
{ 105., 4927., 72828.},
{ 106., 9702., 72699.},
{ 107., 2502., 71234.},
{ 108., 7575., 71160.},
{ 109., 3758., 70947.},
{ 110., 5334., 70655.},
{ 111., 1963., 70627.},
{ 112., 2371., 70454.},
{ 113., 3099., 70345.},
{ 114., 6988., 68846.},
{ 115., 5938., 68775.},
{ 116., 3807., 68246.},
{ 117., 3231., 66996.},
{ 118., 6770., 66788.},
{ 119., 9502., 66381.},
{ 120., 4661., 66170.},
{ 121., 6141., 66117.},
{ 122., 6506., 65454.},
{ 123., 6724., 65378.},
{ 124., 5105., 64293.},
{ 125., 7752., 64108.},
{ 126., 8086., 63896.},
{ 127., 3659., 63832.},
{ 128., 4689., 63326.},
{ 129., 5817., 63184.},
{ 130., 6952., 63045.},
{ 131., 6460., 62679.},
{ 132., 3632., 62673.},
{ 133., 6981., 62513.},
{ 134., 7741., 62196.},
{ 135., 9202., 62099.},
{ 136., 3782., 62093.},
{ 137., 6098., 61109.},
{ 138., 4508., 60812.},
{ 139., 8601., 60744.},
{ 140., 4536., 60715.},
{ 141., 9142., 60609.},
{ 142., 4182., 60399.},
{ 143., 6954., 60326.},
{ 144., 8729., 60277.},
{ 145., 4901., 60178.},
{ 146., 3405., 60171.},
{ 147., 1808., 59736.},
{ 148., 8252., 59305.},
{ 149., 9531., 59279.},
{ 150., 7731., 59051.},
{ 151., 6753., 59012.},
{ 152., 9962., 58430.},
{ 153., 6448., 58362.},
{ 154., 6481., 57342.},
{ 155., 4321., 57112.},
{ 156., 4202., 56506.},
{ 157., 4523., 56416.},
{ 158., 4062., 56340.},
{ 159., 9532., 56244.},
{ 160., 6594., 56104.},
{ 161., 6315., 56091.},
{ 162., 3981., 55942.},
{ 163., 2413., 55272.},
{ 164., 3668., 55228.},
{ 165., 5333., 55166.},
{ 166., 5110., 55091.},
{ 167., 3639., 54906.},
{ 168., 6367., 54439.},
{ 169., 6305., 54376.},
{ 170., 9508., 53851.},
{ 171., 9513., 53705.},
{ 172., 8267., 53591.},
{ 173., 2379., 53533.},
{ 174., 6619., 53422.},
{ 175., 3903., 53348.},
{ 176., 7205., 52743.},
{ 177., 3932., 52461.},
{ 178., 7707., 52243.},
{ 179., 6875., 52226.},
{ 180., 9501., 52214.},
{ 181., 6841., 52177.},
{ 182., 4912., 52117.},
{ 183., 4151., 51715.},
{ 184., 9021., 51465.},
{ 185., 3197., 51262.},
{ 186., 1802., 50640.},
{ 187., 6804., 50065.},
{ 188., 4902., 49891.},
{ 189., 4185., 49887.},
{ 190., 9603., 49797.},
{ 191., 6787., 49147.},
{ 192., 6473., 49133.},
{ 193., 2871., 48941.},
{ 194., 4355., 48913.},
{ 195., 4204., 48870.},
{ 196., 9697., 48697.},
{ 197., 8697., 48305.},
{ 198., 9449., 47960.},
{ 199., 9735., 47597.}}
ソースコードを読んでくれば数分で終わる話ですが、僕はテンプレートを使い慣れていなくてハマってしまったのでメモ
Xtensor を使いたい
色々あって、アウトプットをしていこうと思いました
現在、無職学生です バイトしたいです
Xtensorについては
を見ていただければわかると思います
C++ で書かれた行列計算ライブラリらしいです
みんな大好きAnacondaを使うことによって簡単にinstallすることができるらしいです
ついでに、このチーム(QuantStack)が開発しているらしい xeus-clingも導入していきたいと思います
Anaconda の導入
ここからファイルをダウンロードしてきます
ダウンロードディレクトリからファイルを移動させてきて
bash
bash Anaconda3-5.2.0-Linux-x86_64.sh
して面倒なので全部デフォルトでYesにしました
conda create -n cilng source activate cling
したあとに
conda install xeus-cling notebook -c QuantStack -c conda-forge
でしばらく待ちます(僕の回線が遅いためかめっちゃ時間かかった...)
jupyter notebook
をすると、C++14のカーネルが追加されているのでそれを起動
#include<iostream>
std::cout << "Hamutarou" << std::endl;
Hamutarou
xtensorのinstall
とっても簡単ですね
conda install -c conda-forge xtensor
するだけです
そしてJupyter 上で
#include <iostream> #include "xtensor/xarray.hpp" #include "xtensor/xio.hpp" #include "xtensor/xview.hpp" xt::xarray<double> arr1 {{1.0, 2.0, 3.0}, {2.0, 5.0, 7.0}, {2.0, 5.0, 7.0}}; xt::xarray<double> arr2 {5.0, 6.0, 7.0}; xt::xarray<double> res = xt::view(arr1, 1) + arr2; std::cout << res;
{ 7., 11., 14.}
と出ました
Xframeをinstall
実は僕のメインはこのXframeを使うことです
適当に
git clone https://github.com/QuantStack/xframe.git
してcmakeしたら動きました
以下結果になります
#include <string> #include <iostream> #include "xtl/xbasic_fixed_string.hpp" #include "xtensor/xio.hpp" #include "xframe/xvariable.hpp" #include "xframe/xvariable_view.hpp"
using fstring = xtl::xfixed_string<55>; using data_type = xt::xoptional_assembly<xt::xarray<double>, xt::xarray<bool>>; using coordinate_type = xf::xcoordinate<fstring, data_type::size_type>; using variable_type = xf::xvariable<coordinate_type, data_type>;
// Creation of an axis with `int` labels, given the size std::cout << xf::axis(15);
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
// `int` labels, given the start and stop std::cout << xf::axis(5, 15);
(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
// `char` labels, given the start and stop std::cout << xf::axis('d', 'r', char(2));
(d, f, h, j, l, n, p, )
data_type data1 = {{ 1., 2., 3.}, { 4., 5., 6.}, { 7., 8., 9.}}; data1(0, 2).has_value() = false; data1(1, 0).has_value() = false;
auto var1 = variable_type( data1, { {"abscissa", xf::axis({'a', 'c', 'd'})}, {"ordinate", xf::axis({1, 2, 4})} } );
std::cout << var1.select({{"abscissa", 'a'}, {"ordinate", 1}});
1
std::cout << var1.locate('c', 2);
5
std::cout << var1;
{{ 1, 2, N/A},
{N/A, 5, 6},
{ 7, 8, 9}}
Coordinates:
abscissa: (a, c, d, )
ordinate: (1, 2, 4, )
auto var2 = variable_type( data1, { {"abscissa", xf::axis({'a', 'c', 'e'})}, {"ordinate", xf::axis({1, 3, 4})} } );
variable_type res1 = var1 + var2;
std::cout << res1;
{{ 2, N/A},
{N/A, 12}}
Coordinates:
abscissa: (a, c, )
ordinate: (1, 4, )
std::cout << var2;
{{ 1, 2, N/A},
{N/A, 5, 6},
{ 7, 8, 9}}
Coordinates:
abscissa: (a, c, e, )
ordinate: (1, 3, 4, )
Pandasで逐次処理していくと何日間かかかってしまうので、C++でDataFrameないかなーとか考えてたらXframeにたどり着きました
このXframe、まだ開発途中みたいなのですが、僕が利用してユーザーの意見を届けようと思っています
次からは、XtensorやXframeをもう少し詳しく記事にしていこうかと思います
xtensorでcsvファイルを読み込む方法を追加しました
np.nanやnp.inf,-np.infのsortの挙動について
import numpy as np
h = np.array([1,2,np.nan,np.inf,np.nan,5,np.nan,np.inf,-np.inf]) s = np.argsort(h) s
array([8, 0, 1, 5, 3, 7, 2, 4, 6])
np.sort(h)
array([-inf, 1., 2., 5., inf, inf, nan, nan, nan])
MySQLでdatadirを増設したHDDにしたかった話
AtCoder Beginner Contest 047 in Python A-C
ABC 047 A-Cまで解いてみました
最初からと最後からを解いてみています
これ、後ろに行けば行くほど難しくありませんか???笑
最初の方の問題だったらC問題もスラスラ解けるのに、B問題から結構つまずきました...
以下、解答です
A.
#prepare f = True List = [] #input List = map(int,raw_input().split()) #evaluate List.sort() if not List[0]+List[1] == List[2]: f = False #output if f: print 'Yes' else: print 'No'
B.
#prepare L = [] Q = [] #input W, H, N, = map(int,raw_input().split()) for i in range(N): L.append(map(int,raw_input().split())) x1=0 x2=W y1=0 y2=H #calculate Q = [row[2] for row in L] for k in range(N): if Q[k] == 1: x1 = max(x1,L[k][0]) elif Q[k] == 2: x2 = min(x2,L[k][0]) elif Q[k] == 3: y1 = max(y1,L[k][1]) elif Q[k] == 4: y2 = min(y2,L[k][1]) print max(0,x2-x1) * max(0,y2-y1)
C.
#prepare cnt = 0 #input S = raw_input() #change to list for i in range(len(S)-1): if S[i] != S[i+1]: cnt += 1 print cnt
今回学んだことは、Bのリスト内包表記です
これによって、二次元配列の列が取得出来ました
以下を参考にしました
qiita.com
(でも、AtCoderってnumpy使ってもいいのかも...?)
numpyだったら検索にだいぶ引っかかるのでそれでやったほうがいいかもしれません
C問題は完全にわかりませんでした笑
この解答は参考にさせていただきました、ありがとうございました
だいぶ実装は、早くできるようになってきました
あとは、考えられる頭があれば...笑