oniwan111’s blog

学生が少しでも社会の役に立てればいいなと思って始めたブログです

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については

github.com

を見ていただければわかると思います

C++ で書かれた行列計算ライブラリらしいです

みんな大好きAnacondaを使うことによって簡単にinstallすることができるらしいです

ついでに、このチーム(QuantStack)が開発しているらしい xeus-clingも導入していきたいと思います

Anaconda の導入

www.anaconda.com

ここからファイルをダウンロードしてきます

ダウンロードディレクトリからファイルを移動させてきて

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ファイルを読み込む方法を追加しました

oniwan111.hatenablog.com

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にしたかった話

以下を参考にさせていただきました

hackmylife.net

 

シンボリックリンク!!!

MySQL

CREATE hoge と mkdir hoge

が一緒だなんて知りませんでした

 

この技便利なので是非!!!

MySQLでCan't change dir [errno13]が出た話

備忘録として

 

MySQLで新しいデータベースを新しいHDDにつくろうとしてもできない

しかも、

chmod -R 777 hoge

しても全然ダメ

 

fstabでオプションいじっても全然ダメ...

 

 

「結論」

僕はUbuntuを使っているのですが、

Apparmorが原因でした

 

以下のページのようにAppAromorをオフにすると出来ました

eset-support.canon-its.jp

UbuntuSELinuxではなくて、AppAromorなんですね

知りませんでした

 

 

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問題は完全にわかりませんでした笑
この解答は参考にさせていただきました、ありがとうございました

だいぶ実装は、早くできるようになってきました
あとは、考えられる頭があれば...笑