夢に向かって、好奇心を持ち、疑問を持ち続ける。それが努力。

趣味でロボット職人を目指す自称AI研究者のメモです。

Python:csvファイルの入出力

カンマ","で区切られたテキストファイルを読み込むとき,
中身が数字列だとnumpyも使えますが,少し遅いので,
csvreader,csvwriterが便利です.

1.読み込むとき

import csv

file = open(filepath_str, 'r') # codecsで文字コード指定読み込みも可
csvdata = csv.reader(file)
for row in csvdata:
print row
file.close()


2.書き込むとき

import csv

file = open(filepath_str, 'r') # codecsで文字コード指定読み込みも可

transdata = []
for row in csvdata:
transdata.append(row)

writer = csv.writer(file,lineterminator='\n')
writer.writerows(transdata)

# writer.writerow(row)とすれば1行ずつ出力可能


その他にも,numpy,pandasを使う方法がありますが,
今回はここまで.

Python:改行なしで文字列標準出力

久しぶりですが,最近コード書きに集中してるのですが,良く忘れるのでコーディングのメモを書いておきます.

for文の中がどれくらい進んでるかゲージで表したい時,
以下のように,stdoutを使うと便利です.

import sys
for data in dataset:
sys.stdout.write(".")

print文を使うと,改行されてしまうので,データ量が多いときには,
上記が便利です.

但し,標準出力されるまでにリアルタイムでない(キャッシュがたまったらFLUSHされるような感じ)ので,リアルタイムに…というと難しいですが.

質疑応答の難しさと心構え

今日は,『聞かれた問いにいかに答えるか.』について難しさに直面したので久しぶりに更新です.

プレゼンするにしろ,日常生活を楽しむにしろ,会話の中で,”〜ですか?”という疑問と,”〜ですよ”という回答がしばしば行われます.

日常会話の中であれば,多少の質問に対する回答が違っていたとしても,特別知りたい情報でない限りは,”まぁいいか”で済むかもしれません.

しかし,自分が欲しいものや,自分に関わること,であれば真剣になるのは当然です.

例えば,

自分の欲しい物であれば,より詳細な情報を知りたいので,知りたい情報がわかるまで,調べたり,人に聞いたり,お店の人に聞いたりするでしょう

また,自分が関わる仕事であれば,自分が何をすべきなのか,わかるまで情報を聞き出そうとするでしょう

更に,自分が判断しなければならない立場であれば,判断できるたけの情報を獲得できるまで,情報を引き出そうとするでしょう



自分に関わることでは,わかるまで質問し,的を得ない回答が返って来る場合には,あまり良い気分はしないと思います.


一方で,質問された側を考えてみると・・・

よく,クローズドクエッションと言われるようなシンプルな質問では,Yes/No/Otherを答えれば良いため,非常に明確に答えることができます.

更に,互いの認識に合致することが多いと思います.


しかし,なんで?などのオープンクエッションでは,複数の回答が考えられ,明確な答えを回答者自身が持っていない限りは,難しい状況であることもあります.



今回は,このオープンクエッションについて,答え方の難しさだけでない難しさをうむ性質があることに気づいたので,共有します.


今回感じたのは,

『オープンクエッションが時に互いの質疑の認識を曖昧にする性質がある』

ということ.


例えば,こんなときがあります.


質問者としては,知りたい情報は,Aを探ることでわかるだろうと思っている.

回答者は,Aのシンプルな理由Bを回答する.

質問者の知りたい情報が得られなかったので,更にCを質問する.

回答者は,Cのシンプルな理由Dを回答する.

・・・


質問者は継続して質問を続け,回答者も....


・・・

そこで,

別の者が出てきて,質問に関係なく全体を説明したところ,質問者は納得.


回答者(『知りたい質問はそこだったのか.』...)



こうした状況に直面したのは,初めてではないかもしれませんが,意識したのは初めてでした.



質問者も回答者も,自分が思った通りに質問・回答をしていることは,悪くありません.

しかしながら,本当に得たい情報がその質問から得られるかどうかは,わからないのです.

オープンクエッションゆえに,”これを聞けばその回答が得られるはずだ”という認識と実際の回答にはずれが生じる可能性があるとわかりました.



こうした経験を通して,質疑応答に対する心構えが必要であるという良い学びを得ることができました.



【経験を通して得た自身で気をつけるべきこと】

自身が質問者となるとき:

”自分の最も知りたい情報は何か”を理解した上で,その情報を得られるストレートな質問をするように心がける


自分が回答者となるとき:

シンプルに回答するだけでなく,”相手の質問から本当に得たい情報は何か?”を探り,相手の表情を見つつ,回答の意図を把握する逆質問を投げかける



こうしたトレーニングを通して,円滑なコミュニケーションができるように,日々取り組んで行きたいと思います.



コミュニケーションの難しさ,まだまだたくさんありそうですね.
難しさに気づけるよう,日々疑問と気づきを大切にして行きたいと思います.

選択肢を増やす力の大事さ

【人生は選択の日々である】

そう思う今日この頃です。


お仕事、勉強、プライベートすべてを含めると、やりたいことがたくさんあって、1日をとってもどれかに絞らなければならない。そんなことが多いなと感じています。


日程的に、行きたい講演が2つかぶってしまったり、会いたい友達からのお誘いが2つかぶってしまったり、はたまた、会いたいけど、自分がやりたいお仕事なり、勉強なりを進める時間を考えると、どちらかを我慢しなければならなかったり。


限られた時間の中に、何をすることを当てはめるか、それを日々考えさせられてる気がします。


以前書いた、優先順位の記事も含めて、やはり“自分の中で重要視したいこと”というのを考えておかなければならないなと思っています。



一方で、こうした選択が必要となってくる自分がいることは、とても幸せなことなのだと感じました。(特にやりたいことに対して)

 ※やりたくないことについては、どれをやるかという選択も重要ですが、いざというときは【逃げる】という選択肢があるかもしれないので、ここでは考えないことにします。



【選択ができることの幸せ】


これは、具体例でとてもわかりやすく説明できます。

例えば、友達からのお誘いがかぶった、などであれば、誘ってもらえる友達に恵まれているということであり、

また、行きたい講演がかぶったのであれば、その講演が開催される情報が収集できる環境に恵まれているということができます。

もう少し人生に大きなお話で言えば、(ポジティブな理由で)今のお仕事を続けるか、他の会社を受けるかで迷っているのあれば、やりたいお仕事に巡り合うことができている、またやりたいことができる会社に気づけているなど、自分の目標に明確である、ということができると思います。



ここで、人生のお話を例に持ってきたのは意味があって、

何を目標にしていて、その選択肢としてどれだけ見つけられるか


が、とても重要な力だと思うからです。


ぼんやりと“こんなことがしたい”そう思っていても、それをする手段や、できる環境がどういうところかを知ることができなければ、アクションを起こすことができません。


一方、たくさん調べて(調べる環境があって)、それを駆使して、どんな環境で、どんな手段を踏めば、そのやりたいことができるか、を知っている人は、その術に悩むことができ、そして自分の意思で、選択することができるのだと思います。




私自身、人生において、たくさんあるはずの選択肢をまだまだ見つけられていない状況だと感じています。


選択肢を見つけること、選択肢に気づけること、これはとても難しいかもしれませんが、いろいろな人のお知恵を借りながら、自分の道を広げていきたいと思っています。


それには努力が必要ですね。これからも、がんばります。



見て下さった皆様にも、たくさんの選択肢がみつかりますように。

何かを理解するということ

最近やっと自分の分野の知識が少しずつ身についてきたと感じてる星の妖精です.

ここ半年程,新しい分野の研究にチャレンジするために,勉学の機会を多く設けるようにしています.
このチャレンジは,新規分野への参入の大変さを痛感すると共に,『理解するということ』が容易ではない点に気づくy良い機会になりました.

しっかり理解するために,そしてその専門家になるために,第一に必要と感じたことを素人なりに述べてみます.
参考になれば幸いです.


理解すること,それはどういうことか?



アインシュタインはこのように述べています.


『6歳の子供に説明できなければ、理解したとは言えない。』


確かに,人に説明できなければ,自分が十分に理解できていないことになります.
さらに重要なのが,どんな人にでも理解してもらえるように説明できるようになること.これが大切だと言っています.



私も同様の経験をし,その大切さに気づきました.


新規分野の研究を始めた当時,やはり学会やシンポジウムなどで,当該分野の専門家のお話を聞くところから始めました.もちろん自身の検討は初めてはいましたが,勉強が浅く,周辺分野の理解が追い付いていない状況でしたので,自身の研究を伝えるのが難しい状況でした.

しかしながら,学会等でお目にかかる人には,やはり,”自分は何の研究をしている人か”を伝える必要がでてきます.

当時の私は,知識が浅く,概要レベルのことしかお話しできませんでした.



専門家の人と対等に議論ができないこと.


これにとてもショックを受け,頑張ろうと思って必死になった記憶があります.

これが一つ目の『自分が理解できていないこと』に気づいた瞬間でした.



さらに,概要のみ伝えると,興味のある人は更に話がききたいと言ってきてくれます.
そんなとき,詳細を聞かれれば聞かれるほど,説明できない自分がいることに気が付きました.


例えば・・・

『この式は何から導出されたものか?』


こんな質問を受けたとき,自身の勉強不足の点に気づきました.


勝手ながら“この関連研究の式は,こういうもんなんだ!”と納得してしまっていました.良く知っている分野の人はもちろん,その式の導出先を知っていたために,一度も聞かれなかった質問.

そこに書いてある式がどこから出てきたものか?という点を考えたことがなく,それをすぐに答えられないことに,とても恥ずかしい気持ちになりました.


これが二つ目の『何もしらない人にわかるように説明できることの大切さ』に気づいた瞬間でした.



物事を根本から理解できていなかったこと,また根本から理解することの大切さを痛感しました.

その後,学びを進めていき,根本から理解することで,分野の理解を大幅に前進させることが出来たと思っています.


人に聞かれることで,自分の理解不足に気づくことができ,議論してくださった皆様にはとても感謝しています.




もちろん,自分で理解不足に気づき勉強を進めることができればベストですが,人に話してみて気づくことも,かなり大きい価値であるとわかりました.


自分の学びの浅さに怖がらずに,勇気をもって議論してみることで,自分の未熟さと次に何を勉強しなければならないかを知ることができると思っています.



野球監督の野村克也監督の名言にもあるように,

『人間は、恥ずかしさという思いに比例して
進歩するものだ』


その言葉を大事にして,これからも恥をかきながら自分を成長させていただきたいと思います.

Tera TermのログにTimeStampを出力する方法

今回はWindowsでシリアル通信を行うときに良く用いられるTera Termのログ出力及び,タイムスタンプの出力方法についてです.

Tera Termは, SourceForgeからダウンロードできます.
http://sourceforge.jp/projects/ttssh2/

シリアル通信を行っていて,応答までの時間を測定したいこともあると思います.そんなとき,マクロを組んでも良いですが,ログ出力でタイムスタンプ機能がついているので,紹介します.

まず,以下の設定ファイルを次のように書き換えます.
C:\Program Files\teraterm\TERATERM.INI

ーーーーーーーーーーーーーーーーーーーーー
; timestamp flag for Log (on/off)
(変更前) LogTimestamp=off

(変更後) LogTimestamp=on
ーーーーーーーーーーーーーーーーーーーーー

次に,Tera TermでCOMxとの接続を実施後,ファイル→ログボタンを押下後,出力先ファイルを選択すると,転送用ログファイルにログがどんどん溜められて行きます.

実行していくと溜められていくログは,ログ表示で途中で見ることも出来ますが,最終的には,接続断した際に全てのログがファイルに転送され(書き込まれ)ます.

これにより,出力先のログファイルに,
[timestamp] 入出力
の形式で出力されます.

注意は,最初に,【ログ】ボタンを推しておくことです.
これをしないと,データは保存されませんので,お気をつけてください.

不安になったら,途中で【ログ表示】ボタンを押して,ちゃんとログが蓄積されているかを確認すると良いと思います.


今日はTera Termのログ出力方法に関してでした!

新年のご挨拶と抱負

新年明けましておめでとうございます。

昨年始めたこのブログ。読んで頂いた皆様、コメントを頂いた皆様、ありがとうございます!!
年末にかけて少しずつ投稿が減ってしまいましたが、今年はしっかり情報発信できる様、つとめていきたいとおもいます。
本年もどうぞよろしくお願いいたします。

まずは昨年の反省と今年の抱負から。

昨年の反省。
・朝活を始めたものの、途中で怠惰になってしまった点
 理由>朝活でやる内容をしっかり決めていなかったため自然とサボってしまった。

・英語の勉強をするも、わずかしか上がらず。
 理由>勉強にかける時間が少なすぎた。

振り返り。
・ロボットスペースのフォロワが20人を超えた。
 > 今年はもっとスペース内でのコミュニケーションを活性化したい。

・新たに始めたこと、継続してたことが実になったこともあった。
 > その馬力を元に、もっと実をつけようと思う。

今年の抱負。
・優先順位を付けて取り組んでいく。
・完結したら次へというように、ゴールすることの達成感を細切れで味わえるように工夫する。
・ロボットスペースへの週1以上の投稿。
・ブログへの月2回程度の投稿を目標とする。
 (いわゆる、投稿できるような進捗を作る)


今年も、発信していきますので(はてなブログおみくじ曰く、こまめに発信することが大事らしいので笑)、宜しくお願いします。

皆様、2015年も実りある1年にしましょう!!


はてなブログおみくじ2014