63’s blog

都内のSEのブログです(*‘ω‘ *)技術は好きですが仕事は嫌いです。

PythonのListの活用法・注意点

久々にブログを書きます。正直、就活終わって時間なんてたくさんあるだろって思ってました←
意外と大学4年って忙しい…
研究ならまだしもゼミが一番きつくなっているのが意味がわからない…
そしてゼミの内容もわからない…笑

とりあえずやってみて、自分でもちょいちょい擬似コードを実際に動かしてみたりと時々プログラミングができるのが最近は嬉しいですヽ(´▽`)/
そんな時に機械学習の分野なのでPythonを使っているのですが、

リストを使いこなすのがむずかしい!!

正確に言うとリストを使う方法がありすぎて頭の中で全然整理できていません笑
なので、今回はPythonのリストを使う方法をまとめていきたいと思います!



○リストの共通の宣言パターン

list=[]

このように宣言することで空のリストができます。

○リストの宣言パターン①

list=n*[0] #一次元
list=n*[m*[0]]  #二次元

ここで注意点です!
この宣言の仕方だと参照型のリストの宣言方法なので、数値を代入しようとすると他の配列まで同じように操作されます。
ex.list=2*[3*[0]]
list=[[0,0,0],[0,0,0]]

list[0][1]=1
list=[[0,1,0],[0,1,0]]

○リストの宣言パターン②

list=[[0 for i in range(m)] for j in range(n)]  #二次元

こうすることによってさっきの注意点が解消されます!
ex. list=[[0 for i in range(2)] for j in range(3)]
list=[[0,0],[0,0],[0,0]]

list[0][1]=3
list=[0,3],[0,0],[0,0]]

この宣言パターンなら0を2回appendしたリストを3回appendしたことと同義なので参照型にならず、別々に扱える。

とりあえず、今回はここまで!
numpyを使ったリストもまとめたらアップしようと思います!

圧迫面接があっても就活を楽しめる方法

まだまだ就活をしていますが、結構前向きにできていると思います。
面接をしていて自分の強みだとかやってきたことを伝えると褒めてくれる人もたくさんいます。今のところ、どこに就職を決めるかはまだ不安ですが、就活で面接が嫌だと思ったことは一度もありません。

そこで今回はここまで私が前向きに就活を行えている理由でも考えてみますヽ(´▽`)/

なぜ、前向きに就活ができているのか?

考えられる答えとして

  • 面接が嫌いじゃない
  • 周りの友達がピリピリしていない
  • 内定を持っている


こんなのが簡単に挙げられました。

もし今、就活に対してネガティブ人はこれらが欠落しているのではないかと考えられます。
「周りの友達がピリピリしていない」と自分の環境が反対なのが原因ならもはや就活が終わるまで連絡を取らないことで解決しましょう。
「内定を持っている」という状況でないからネガティブな人はふさぎ込んでしまう前にとりあえず応募しまくりましょう。


さて、本題です。(語りたかったところ)
「面接が嫌じゃない」なぜこのように考えられるかというと単純に人に自分のしてきたことを自慢するのが好きだからです。←

また、自分の意見を主張するのが好きなのです。

ここで面接が嫌になってしまう原因として自分の意見を否定される時があるからだと思います。さらにそれに対してなにも言い返せないと自己嫌悪になってしまうのです。

だからこれを解決しましょう!

これを解決する方法は自分の意見に自信を持つことです!

もし反対意見がきてもそれを踏まえても自分の意見が正しいと思い込んでおけば主張を大切にした反論が自然と浮かんでくるはずです。

最初は大変だと思います(^_^;)
ですが、面接を重ねていくうちに自然と言葉が出てくるようになります。なので、あとは練習あるのみです!就活は大変ですが、頑張りましょう!


自分の意見がすべて正しいと思うこと

対話でのロジカルシンキング

学校の課題と就活が忙しい今日この頃…
ようやく学校の課題の山場が超えた?のかもしれないのでちょっとメモ程度に書いておきます(^O^)

ロジカルシンキングを人と話すときに用いる方法を記します。


まずロジカルシンキングとはそのまま論理的思考のことであるのですが、これができるとなんと人を説得するときに理詰めができるので説得力が生まれます。
人からの相談を受けて適切な答えが返せるようになります。

最初から論理的に答えることはできないと思うので、まずは紙に書いてみましょう!
まず、質問を書いてそれに対する答えをとりあえず何個か見てみましょう!

ex.どうやったら頭がよくなるか?
・勉強する
・計画を立てる
スマホを見る時間を短くする

このように書くことで、さらに勉強をするにはどうしたらいいか?計画を立てるのにはどうしたらいいか?などさらに深く考えていくことで自身でも思ってもなかった答えが出てくることがあります!


さらにこれを人とのコミュニケーションにおいて使っていきます!

誰とコミュニケーションをとるにしてもその人は何かしらの目的をもってコミュニケーションをとります。
その時に「相手がなにを目的としているのか」を先のロジカルシンキングの疑問にしていきます。

こうすることで相手が相談してくる場合であれば、本当に解決法を求めているのか、後押しして欲しいだけなのか、などいろいろ予測することができ、なにを言えばいいのかわかります。


これで私は話しやすいだとか相談しやすいだとか言われるようになり、誰とでも仲良くなれるようになりましたヽ(´▽`)/

やっと最初だけわかったナイーブベイズ…

データマイニングを頑張って勉強している今日このごろですが、ナイーブベイズについてあまりやってきませんでした…

というわけでナイーブベイズを理解するついでにこのブログで数式をうつ練習でもしようかと思います笑


ナイーブベイズとはベイズの定理を利用して予測するものです。

ベイズの定理とは
{ \displaystyle
P(Y|X)=\dfrac{P(Y)P(X|Y)}{P(X)}
}
で表される確率を示すもので、これだけだと意味がわかりません。

元々私はP(Y|X)は確率P(X)のもとでP(Y)が起こる確立とだけ理解していました。
これを次のように言い換えます。

ある特徴Xの集合を特徴としたときに結果がYである確立

このようにすることでにわかに機械学習を勉強している方ならわかると思います←

つまりXを参考にした時にYである確率ですね
そしてこのP(Y|X)が最大である時のものを結果として予測します


正直、こういったことを理解するときにうまくアウトプットできません…
自分がわからなかったらとりあえずアウトプットする練習をするようにしていますが今回はまだまだ理解が追いついていないところが多かったのかもしれません。
でもこれでわからないところが理解できた気がします!

完全に独りよがりなアウトプットでメモ程度の存在のブログですが、誰かの役にたったらラッキーです笑

企業でやりたいこと(就活)

友達にアウトプット頑張ろうと言われたので一度は飽きましたが、もうちょっと頑張ります笑

ESや面接をしていて毎回思うのですが、企業でやりたいことはなんですか?って質問大嫌いです。
何も企業のことをわかってないからと言われることもあるとは思いますが、よっぼど思い入れのあることじゃないとこんなん思いつかないと思います。(まぁそういうことがすぐに思いつけば熱意が伝わるとは思うのですが…)

というわけで企業でやりたいことを考える方法を考えていきました。

とある面接で「将来企業に入ってやりたいこと」を聞かれました。その時にその面接官はその直後に「夢ないの?」と問いかけてきました。
そこから「将来企業に入ってやりたいこと」というのが「夢」と問いているということに気がつきました。

しかし、私は「夢」がぱっと出ませんでした。そこからその面接は捨てて、どうやって具体的に考えることが出来るのかを考えるために面接官の人に「夢は何か?」「それはどうやって見つけたか」を教えてもらいました。それからは座談会でもたくさん聞きました。

その結果…人それぞれ過ぎてわからないんですね…

そこで自分がなにをしたいのか考えました。結構考えました。でも何もおもいつかない。ありきたりのことしかおもいつかない。

なのでもっと具体案を出すのではなく、抽象的にこんなことをし続けたいと考えるようにしました。具体的な例であれば、ITを使って人の生活をよくしたい(全然具体的じゃない…)みたいなことがありますね。抽象的な例であれば、なんかやってたい(雑すぎる…)。みたいなできるだけ抽象的に考えます。私の場合であれば、達成感を味わい続けたいです。こっからその企業がやってることを調べて具体的なことをいえば完璧と思います!


こうすることで具体的で自身の希望と関連付けられます。
ちなみにですが、抽象的なことをやりたいことを伝えても興味がないように思われるので、できるだけ具体的な案を考えていくのがベストです!

かなり当たり前のことかもしれませんが、これができれば大体の受け答え困らなくなりました笑

サイトを参考にしてプログラミングをするときの注意点

ひさびさのプログラミングの更新です。
最近は以前から入れていたライブラリのAChartFreeがうまく扱うことができずに苦戦しておりました。

そこで先ほど解決したのでそこをふまえて、ほかの方がブログなどに載せているプログラムに加えて注意する点などを記していきます。
当たり前のことを書く事もありますが超絶初心者なのを考慮して、温かい目で見守ってください。

まずレイアウトのxmlをコピーするときの注意
Android Studio1.4からレイアウトについてはactivity_main.xmlとcontent_main.xmlとなりました。元々はactivity_main.xmlのみだったので古い記事を参考にしているときは注意です。
ちなみにactivity_mainの方が背景や画面の元となっているイメージでそこに詳しい情報を加えるときにはcontent_main.xmlに書き込むことが主流です。
なのでサイトからコピーし、レイアウトファイルがひとつの時にはactivity_mainの方に書いたほうがいいと思います。

それから注意することとしてはレイアウトエディタのスマホ画面が画面上に表示されない時があります。これはレイアウトコードのバグかAPIレベルが対応していない可能性が高いです。なので、画面上に表示されない時にはAPIレベルを下げることをおすすめします。私はこれで表示されました。

あと私が失敗したのもをあげるとpackage名の書き換え忘れがありました。レイアウトのコードをそのままコピペするときにライブラリの時は特にあるようですが、com.の後を自分のものにしないまま実行してしまい、参照エラーが起こることがしばしばありました。注意しましょう!


最後に解決方法がわからないのですが、エミュレータのエラーです。まとめるとエミュレータを別のものにしろってエラーでしたが、ほかのものにしても実機にしても実行されない…
ここで今回かなりの時間を使いました。これの解決方法(完璧ではないです)は実機で一回実行してその実機からアプリを選択して実行する方法です。これでなぜか実行できました。後に解決方法がわかったらメモします。


などなど、基本的なところからわけわからないところまでたくさんありました笑

次からはdatファイルなどの外部ファイルをサイトから取得してandroid内の計算に使えるように頑張りたいと思います!

就活してて思うこと…なにをやりたいのか…

以前からAfreechartを使ってグラフを表示させる努力をしているのですが、エミュレータのエラーが表示されてしまいます。
ググったりいろんな方法を調べていますが、なんだかレイアウトの部分がダメみたいです。
Gradleがエラーをはいていないのですが、実行するとエミュレータに完全にシカトされます笑なので、今はレイアウトの点での解決を考えています。

就活の片手間にこんなことをしていますが、最近将来どんな自分になりたいかを固められるようになってきました!しかし、具体的にやりたいことを問われるとなにをしたいのかわけわからん…

そんで今回は将来、具体的にやりたいことを考える方法を考えていきます。

まず考えるにあたって何事も情報の整理をしなければなりません。これは自分のもってるごちゃごちゃになった情報を整理するという意味です。

そんで実際に整理します………そこで私は思いました。

何も知らない…笑

今回の例だと何も具体的に知らないんです。将来の職種とかは分かってもそれがどのくらい辛いことでどのくらい楽しいのか。どれだけインターンとかに参加したとしても実際に働くとなったら全くわからないのです。その職場にいる人と自分がどれだけ合っているかもわからない…

というわけでここでそんな解決方法をメモしておきます。

マイナス要素を取り除くことです。

マイナスを取り除いてとりあえず挑戦することです。どうしてもファーストキャリアとなる新卒の就活では失敗したくないという気持ちから行動や視野がこわばってしまいます。なのでまずはプラス要素を羅列させてそれらが一番多いところ(これがその人自信が大切にしたい、希望などを表すと思います)を選択して抽出することこそが重要と思います。

どう頑張ってもマイナス要素は出てきます。しかし、それは許容範囲の問題だと思います。自分がどれだけ許せるかを決めておけばいいのです。例えば、年収が低いのが嫌だといったとしてそれはどれだけ低いのがまずいのか、年収400万でも低いという人もいれば1000万でも低いという人はいると思います。なので事前に自分のそれぞれの下限を設定しておきましょう!


なので結果として自分が列挙できる限りの具体的にやりたいことに対してそれぞれプラスの要素、マイナスの要素をかきだし、そこからプラスがとにかく多いものを選択してあげるのがいいと思います。


以上、考えがブレやすい自分のためにメモしておくべき内容でした。