折りたたみを展開する

おぼえ書き、まとめ、発表など

CLionを使う

IDEを使ったことがなかったのだが、そうもいってられないので、使っている。 Macなので、安直にXcodeを使用しようとおもったのだが、どうも思いし、C++の勉強には不向きだと思う。 全部、MacでVisual Studiogが使えないのが悪い。

いろいろと物色していたのだが、とりあえずCLionを使用してみることにした。

qiita.com

有料ソフトなのだが、eduやacがつくメールアドレスをもっている人は無料で使えるらしい。 また、vimのコマンドも使えるのでvimの練習にもなる。 画面もイイ感じだ。

f:id:Rlan:20170803093446p:plain

とりあえず、前にブログで話題にしたC++の本の練習問題を解いている。

基礎からしっかり学ぶC++の教科書 C++14対応

基礎からしっかり学ぶC++の教科書 C++14対応

色々と発見があっておもしろい。

話題が変わるが、Macの掃除などをしたい人は以下を参考にするといいだろう。


埃だらけ…MacBook Proの分解掃除!

Visual Studioが使えないけど、Macを末永く使いたいものである。

論文の書き方

アウトリーチ

人工知能は人間を超えるか、という本がある。この本は昨今の一般メディアの人工知能ブームよりも前に出版された本であり、ベストセラーにもなった本である。

研究者も個人サイトがある

作者は東大の松尾豊という研究者の方である。サイトもある。以前のエントリーでも書いたが、こういう第一線の研究者が私のような一般市民に向けて啓蒙をしてくださるのはありがたい限りである。

be-dazzled.hatenablog.com

論文の書き方

ところで、第一線の研究者なので当然、研究室があり、院生がおり、ジャーナルや国際会議への投稿を盛んにしている。そういったノウハウもHPで公開されているのだ。一般市民だけではなく、院生・若手研究者への情報公開をされているとは。すごいの一言である。

松尾ぐみ | 松尾 豊

この啓示をありがたく読ませて頂いている。特に、日本人が英文のジャーナルや国際会議に投稿するためにどのようなステップを踏めばいいかということが書かれている。また、作者は情報系なので他分野とは事情が違うところもあると思う。国際会議への投稿の採択が最重要であったりするところは、国際会議という概念がなかったり、トップのジャーナルからの採択が最重要だったりする分野とは事情が異なるだろう。

f:id:Rlan:20170616095809p:plain

lyxで何も考えずに画像をいれたい

もう普通何も考えたくないからTexShopではなくLyxを使っている。texを使っていたころの名残からなのか、epsに画像を変換してからlyxで読み込んでいたのでたいした不都合をかんじていなかった。方法としては、ImageMagicで変換して使うというあるまじきローテク魂である。

f:id:Rlan:20170608174109p:plain

しかし、このLyx、画像変換の方法をしていしてあげれば勝手に読み込んだ画像をepsに変換してくれるのだそう。今回は、png→epsについて書く。といっても、参考になるブログ等が多数あったのでそちらを読んでいただければという話だ。

El CapitanでのLyXの画像挿入 – Konno Log

なんの因果か、こちらの方法でもImageMagickを使用している。ただ、インストールの方法はHome Brewでもokだ。どちらでも同じことなのでお好きな方をどうぞという感じである。この方法を拡張するればImageMagickが対応している画像をepsに変換することができる。すごく便利である。

もう、ベタ打ちのtexにはますます戻れなくなった。

pandasで日付を扱う

日付を扱うには

pandasで日付を扱うには、TimeStampが便利である。というより、そうやって扱うことになっている。

qiita.com

適当にparserだかなんだかを指定しなくては行けないこともある。しかし、たいていは何もしないでもいい感じに読み込んでくれる。上の記事の方はcsv形式のファイルを読み込んでいるが、excelでも同じことができる。

現実は厳しい

しかし、今日触ったデータは和暦.月.日という謎フォーマットだった。しかも、時々全角の「.」や半角のスペースが入っていて最悪のシロモノだった。和暦.月.日という謎フォーマットで年月日を表すと、2015年2月14日が27.02.14のようになる。しかも時々、27.02.14とか27. 02.14になるのだ。

f:id:Rlan:20170608174100p:plain

結局、うまくTimeStampに変換する方法がわからなかったから無理やりに変換した。流れは、

  1. 謎の表記の年月日から「.」や半角のスペースをreplaceで置き換える

  2. to_datetime( 謎の表記の年月日, format='%y.%m.%d') で無理やり和暦を西暦として認識する

3. すると、平成27年は2027年として認識される

  1. これを修正するために- pd.DateOffset(years=12) としてずれた12年を引く

こういう流れである。まったくもって非効率的な話である。どうにかしていい方法はないものだろうか。

勉強法が全然わからない

f:id:Rlan:20170706192522p:plain

勉強

勉強というのはある意味手順があって、専門分野を勉強したければその教科書を読めばいい。授業の資料なども沢山インターネットに上っている。どの教科書を読めば良いかもシラバス等を見ればわかるだろう。

もし、その教科書を読む素養がなければもっと基礎的なとこから始めれば良い。中学数学→高校数学→大学教養とかだ。できるかどうかはともかくとして、こういう筋道は立つだろう。

しかし、これはコロンブスの卵的だ。抽象的というかある意味、その道順を知っているからそう言えるのである。バックグラウンドや基礎的な技能が無い人からすれば、何をすれば良いのか文字通りno ideaでなにもわからないのだ。

英文ライティング

f:id:Rlan:20170706192522p:plain

自分にとってそれが英文ライティングである。数多くの英文ライティングの本が出版されているが、なにをとってもわからない。まず、英文を書くということがわからない。ましてや、パラグラフ内部での構造や複数のパラグラフ同士の構成などを理解することもできない。

添削などを受けてみても、なぜその減点・修正が必要なのかわからない。書いてある理由などが理解できないので、次回書く時にその添削を反映させることもできない。

いくつかの本を読んでみた

即戦力がつく英文ライティング

即戦力がつく英文ライティング

新版TOEFL TEST対策iBTライティング

新版TOEFL TEST対策iBTライティング

英語ライティング講座入門

英語ライティング講座入門

しかし、何もわからない。書いてあることを理解することはできるが、血肉となる感覚が全くない。断っておくが、これは私に理解する能力がないだけで作者の能力によるものでも無ければ、本が悪いといっているわけでもない。ただ理解できないのだ。

どうする

どうするかほとほと悩んでいる。困った。これは、しつこく添削などを受けるしか無いのだろうか。

f:id:Rlan:20170706192516p:plain

そういうことで、ここのブログを使ってすこし勉強していこうと思います。

numpy arange と linspaceのちがい

細かくて、気付かない

あまり気にしないで使っていたが、numpy には arangelinspace がある。似ているが、違う性質を持っている。

f:id:Rlan:20170531234035p:plain ドキュメントを引用してみると、

numpy.arange — NumPy v1.13 Manual

numpy.arange

Return evenly spaced values within a given interval.

Values are generated within the half-open interval [start, stop) (in other words, the interval including start but excluding stop). For integer arguments the function is equivalent to the Python built-in range function, but returns an ndarray rather than a list.

であって、

numpy.linspace — NumPy v1.13 Manual

numpy.linspace

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)[source] Return evenly spaced numbers over a specified interval. Returns num evenly spaced samples, calculated over the interval [start, stop].

The endpoint of the interval can optionally be excluded.

であるそう。ただ、どちらの関数も引数にとった範囲を刻んで array で返してくれる関数だ *1 。

気になった違いをまとめる

ドキュメントを読んで気になった違いをまとめてみる。各関数はデフォルトでは、

numpy.arange

  • 最後の値は含まない配列を返す
  • 最初の値を指定しなくても良い
  • ステップの数を指定しなくてもよい

numpy.linspace

  • 最後の値は含む配列を返す
  • 最初と最後の値を指定する必要がある
  • ステップの数を指定する(デフォルトでは50ステップになっている)

のような点が違う点であると思う。

最後の値を含むかどうか

arrangeは最初の値は含むが、最後の値は含まない*2

np.arange(1, 10)
>>> array([1, 2, 3, 4, 5, 6, 7, 8, 9])

linespaceは最初と最後の値を含む

np.linspace(1,10, 10)
>>> array([  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.])

最初と最後を指定する必要があるかどうか

arrangeは必ずしも最初と最後の値を引数に取る必要はない

np.arange(10)
>>> array([1, 2, 3, 4, 5, 6, 7, 8, 9])

しかし、linspaceは最初と最後の値を引数に取る

np.linspace(10)
>>> ---------------------------------------------------------------------------
>>> TypeError                                 Traceback (most recent call last)
>>> <ipython-input-12-e01aa1d69cee> in <module>()
>>>> ----> 1 np.linspace(10)

>>> TypeError: linspace() missing 1 required positional argument: 'stop'

ステップ数を指定する必要があるかどうか

arrangeでは前のブロックで見たように引数が一つだけの場合は、1からその数まで1ずつステップを踏む

np.arange(10)
>>> array([1, 2, 3, 4, 5, 6, 7, 8, 9])

しかし、linspaceはステップ数を指定する必要がある。だが、ステップ数を指定しなかったとしてもエラーが出るわけではない。

np.linspace(1, 10)
>>> array([  1.        ,   1.18367347,   1.36734694,   1.55102041,
         1.73469388,   1.91836735,   2.10204082,   2.28571429,
         2.46938776,   2.65306122,   2.83673469,   3.02040816,
         3.20408163,   3.3877551 ,   3.57142857,   3.75510204,
         3.93877551,   4.12244898,   4.30612245,   4.48979592,
         4.67346939,   4.85714286,   5.04081633,   5.2244898 ,
         5.40816327,   5.59183673,   5.7755102 ,   5.95918367,
         6.14285714,   6.32653061,   6.51020408,   6.69387755,
         6.87755102,   7.06122449,   7.24489796,   7.42857143,
         7.6122449 ,   7.79591837,   7.97959184,   8.16326531,
         8.34693878,   8.53061224,   8.71428571,   8.89795918,
         9.08163265,   9.26530612,   9.44897959,   9.63265306,
         9.81632653,  10.        ])

なぜなら、デフォルトではステップ数が50に指定されているからだ。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)[source]

他について

細かな違いがあるので気をつけたいところ。返すarrayの要素の型についてはどちらの関数でも指定できる。しかし、arrangeint型の要素を持ったarrayを返す場合がある一方で linspaceはfloat型の要素を持つarrayを返す *3 。「少数を使うときは、linspaceが推奨らしい」という記述を見かけたが、この点を根拠として言っているのかもしれない。

*1:linspace はステップ数を返すようにするとかもできる

*2:デフォルトでは

*3:この点はよくわからなかった。つまり、linspaceは指定しない限り常にfloat型の要素を持つarrayを返すのだろうか

広報誌について

広報誌の意味

広報誌というのは大きな会社なら大抵ある。株主向けというのもあるのかもしれないが、わかりやすく情報発信するために工夫が施されているものが多い。株式会社といっても千差万別だ。BtoBからBtoCなど色々な会社がある。大会社といっても聞き馴染みのある会社からそうでない会社まである。

株式会社なら

日本銀行はどうであろうか?じつは、日本銀行は株式会社なのである。たしか、政府がすべての株式を保有しているのだとおもう。といっても、中央銀行の独立性は日銀法である程度確保されていることになっている。中央銀行はマーケットと対話を重視するのでそういう意味でのコミュニケーションは記者会見や統計の公表、金融調整の方針の公開などで行う。しかし一般という意味での外への情報発信、つまり国民に向けての情報発信という意味なのだろうか、日銀にも広報誌がある。そして、この内容が結構面白いのだ。

広報誌「にちぎん」

ゲストの執筆者や対談が掲載されている。そして、そのメンツが豪華なのだ。財界人はもちろん、文化人、芸能人など幅広い。イメージで言うと、情熱大陸に出演するような層の人たちが寄稿している。最近では、総裁と宮部みゆき(小説家)が掲載されている。

http://www.boj.or.jp/announcements/koho_nichigin/index.htm

 豪華ゲスト・執筆陣

他にも、たとえばインタビューの相手として、

といったメンツがえらばれている。また、『エッセイ/"おかね"を語る』と称してエッセイの寄稿も行われている。個人的に、興味深かったのが中野信子のエッセイだ。

日本銀行広報誌「にちぎん」No.44 2015年冬号 : 日本銀行 Bank of Japan

内容についてはさておき、この文体は彼女の新書などでのそれとは全く異なっている。想定読者によって変えているのであろうか。