数奇草

四畳半に魅せられた理系学生の備忘録

与えられた文字列をリストへ変換

s1 = "ABCDE" #適当な文字列
s2 = "12345"

のようにs1、s2が与えられ時に、これらをリストに変換してみる。

まずはリストの要素要素に一文字ずつ格納したいときは以下のようにする。

# input
list1 = list(s1)
list2 = list(s2)
print("list1 =", list1)
print("list2 =", list2)

# output
list1 = ['A','B','C','D','E']
list2 = ['1','2','3','4','5']

ちなみにlist2の要素は文字列なので、これを数値に直したいときは、map関数を用いる。 Python3の場合、map関数はイテレータを返すだけなので、別途list関数をかます必要がある。

# input
list2_new = list( map(int, list2) ) # 整数でない場合はfloat関数
print(list2_new)

# output
[1,2,3,4,5]

次に、あまり頻度は高くないだろうけどリストの一つの要素に文字列全部をぶち込みたいときは以下のようにする。

# input
list1 = s1.split()
print(list1)

# output
['ABCDE']

数値計算ライブラリしか使ってこなかったので、そのまんまのPythonの勉強もしていかないといけないなぁ。

プラズマ物理学始めました

ひょんなことからプラズマ物理学に片足を突っ込むことになってしまった。 人生わからないものだ。

だから、いい参考書がないものかと、まずは日本語の本を探して見たが、これが全くと言っていいほどない。 それなら洋書に手を出せばいいじゃないかとも思ったが、いかんせん私は英語だとどうも頭に入りにくいのだ(これはそれゆえに洋書を避けてきたがためのツケなのかもしれない) しかし、当然ながら科学系の論文は全て英語だし、英語は〜などと悠長に構えていられないこともわかっている。 というわけで、今回は「Introduction to plasma physics and controlled fusion」の第二版を気長に読むことにした。

私がメモしていくことは全く体系化されていないし、ほとんどが断片にすぎないことを先に記しておく。 私が「あ、なるほど」と思ったことをそのままに書き連ねるだけなのだ。また、プラズマ物理に関係のないことも多く含んでいるだろう。 設定期間としては今年度いっぱいを使って一冊を消化できればいいと考えている。

どうも初めての分野というのは暗中模索で、簡単なことも難しく思えて、ゆえに頭に入りづらくなってしまう。 大学初学年の時に習った線形代数微積分がその最たる例だろう。どうしても途中で投げ出したくなってしまう。 それをどう抑えるか、どの程度の理解で良しとして先を読み進めるか、それらを考える上でも今回の勉強は大いに役に立ってくれると考える。

地道な努力

やはり、inputだけじゃ全く身につかないからoutputする機会を設けなくてはならない。

僕は他人に努力している姿を見られることをひどく嫌うのだが、それには理由がある。それは、僕の努力が有益であれ無益であれ、他人は僕の努力している姿を見て、「この人は努力している、だからとても真面目で、賢くて、ストイックで、優秀な人なんだ」と勝手にラベル張りをしてくるからである。他人は自分より努力している人を見ると保身のために「この人は別格だから私と比べる必要はない」と逃げる口実をすぐに作る。その口実にされたこっちはいい迷惑である。ましてや、僕が優秀などとその他人が周りに吹聴しようものなら、殺意を覚えるレベルである。

僕は常に、自分の努力は無駄なのではないか、という不安と戦いながら生きている。必死に本を読んでいざ読んだことを反芻しようとすると、思った以上に脳へ定着していなくて絶望することも多々ある。こんな人間のどこが優秀なのか。結局のところ、優秀かどうかの判断は過程ではなく結果だと僕は思うのだ。

そうして優秀でもない僕へ、自己保身のために「優秀だ」とラベルを張ってくる人は、どんどん僕を追い詰める。周りが勝手に僕を優秀だと追い詰めてくるから、それに見合うだけの努力を僕はもっとしなくてはならなくなるからだ。しかし、努力というのはやみくもにしてもいい結果を運んできてくれない。逆に無駄な努力は僕から時間を奪い、奪われた時間は二度と帰ってこない。それを補うためにもっと必死になって努力をして、いつの間にか「努力すること」が目的になってしまうかもしれない。

そうならないために、僕は今日もひっそりと息をひそめて生きる。他人からの見えない暴力におびえながら。

Rのインストール

無事に大学院入試が終わった。正直に言うと無事ではないのだが、合否は箱のふたを開けてみないとわからないのでなんとも言えない。しかし、内部生初の不合格をたたき出したような予感がして院試明けだというのに全く気分が晴れない。むしろ最悪である。

とりあえず、何もしたくないという燃え尽き症候群の自分に鞭を打つべく大学のパソコンのUbuntuにRをインストールした。今日はその過程をメモしておこうと思う。

Ubuntuで盲目的にapt-get install r-baseとすると古いRが何故かインストールされるらしいのでそれを回避してRをインストールする方法を探した。

Ubuntuのバージョンの確認

apt-getをする前の準備段階として、必要になってくる「Ubuntuのバージョン」を確認する。コマンドプロンプトを立ち上げて(ショートカットキー: Ctrl+Alt+t)、以下のようなコマンドを実行し、表示された結果のうち「DISTRIB_CODENAME=…」を確認する(僕のUbuntuでは「…」のところはxenialと出たが他にもtrustyやvividなどの場合もある。とりあえず、自分のUbuntuでは何が表示されたのか覚えておく)。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

ミラーサイトを登録

昔は色々あったみたいだが、今(2017/08/10現在)では日本国内のダウンロード元のミラーサイトは統計数理研が提供するものだけしか利用できないみたいだ。 ちなみに、現在利用可能なダウンロード元のミラーサイトは「CRAN MIRRORS」で確認できるそうだ。

次に「/etc/apt/sources.list」ファイルを適当なエディタで開いて管理者権限で編集する。僕はエディタとしてemacsを用いた。

$ sudo emacs /etc/apt/sources.list

エディタが開いたらそれの末尾に「deb http://cran.ism.ac.jp/bin/linux/ubuntu …」を追加して保存して閉じるのだが、ここで注意してほしいのが「…」のところには先ほど確認したUbuntuのバージョン(僕の場合はxenial)が入るというところである。

それから公開鍵を獲得するために、以下のコマンドを入力するとほかのサイトでは言われていたのだが、なぜか僕のUbuntuの場合鍵サーバからの受信に失敗して上手くいかなかった。

# これだと上手くいかない
$ gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
$ gpg -a --export E084DAB9 | sudo apt-key add -

ポート番号の指定

どうやら社内環境や大学環境などで利用ポートに制限がある可能性があるらしい。 これを回避するために、hkpというスキームをつけてあげればポート番号を指定できる。 一般的なwebページを取得するときに介する80番ポートは大概閉じられてることはないのでそれを指定する。

$ gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv E084DAB9
$ gpg --armor --export E084DAB9 | sudo apt-key add -

こうして取得した公開鍵を追加して完了。

Rのインストール

これで前準備が終わり、最後に端末上でUbuntuのパッケージを更新し、Rをインストールする。

$ sudo apt-get update
$ sudo apt-get install r-base

インストールしたRのバージョンを見て最新であることを確認する。

$ R --version
R version 3.4.1 (2017-06-30) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

これで終わり。学ぶことが多かった。

参考文献

ポート制限のある環境でUbuntuにPPAリポジトリを追加する - teppeis blog

UbuntuにRをインストール - Qiita

差し迫る大学院入試

 忘れた頃に更新をしているこのブログだが、8月の頭の大学院入試を期に少しリニューアルしようかなと考えている。

 

 以前の記事は残しておく。けれど内容は自分の日々を綴るというよりも、自分が勉強した内容をまとめたり、読み終わった本の感想を投稿したりと、僕自身の実生活から焦点をずらそうと思う。

 

 院試後の予定を増やさないと院試のプレッシャーに負けそうとかそんな軟弱なことは考えてはいないが、早く院試おわらないかなー。