‫お帰りなさい｡
‫そして､ 最後のビデオでは､ ちょっとした算数の技を学びました｡
‫そして､ 算術演算とは､ numpyの配列に対してできる数学的な操作の空想の言葉であることを学びました｡
‫というわけで､ これから集約によるNumPy配列の操作についてもう少し学びます｡
‫さて､ アグリゲーションとは､ もうひとつの空想の言葉です｡
‫ググってみよう｡
‫アグリゲーションを定義する｡
‫いくつものものが集まって形成されること｡
‫そうですね､ そういうことになりますね｡
‫つまりアグリゲーション､ いくつものものに対して同じ操作を行うことです｡
‫そして､ 私たちの場合は､ その数がnumpy配列になります｡
‫では､ 見てみましょう｡
‫和算の方法はよく知られているかもしれませんね｡
‫だからsomeやpython some｡
‫では､ リストを作ってみましょう｡
‫リストが1､ 2､ 3になる｡
‫ニースとシンプルで､ 私たちはタイプリストに行く｡
‫リスト
‫リストアップされたリストは定義されていない｡
‫もちろん､ 誤字脱字はしています｡
‫これでよしとしよう｡
‫Pythonのリストを入力します｡
‫つまり､ リストアップされたリストの合計を取得したい場合は､ このsome listed listと入力すればよい｡
‫さて､ これがPythonの関数です｡
‫一部です｡
‫しかし､ NumPyにはこれらの独自のバージョンがある｡
‫それでは､ もっと信頼性の高い1つの配列に戻ってみましょう｡
‫まあ､ それ以上ではないのですが､ 同じ情報を含んでいても､ リストをリストアップするタイプが違うだけなのです｡
‫numpy型とD型配列になっています｡
‫では､ 見てみましょう｡
‫1本で何ができるのか？
‫何人か呼べば､ 6人は集まる｡
‫また､ NP some on a oneを呼ぶこともできます｡
‫私たちも6つもらっています｡
‫なるほど｡
‫さて､ ここでなぜ機能が違うのか､ この2つの大きな違いは何なのか｡
‫一組のデータに対して同じ集計を行う方法が2種類あると混乱しますし､ 集計はただ同じ操作をいくつも行うだけと覚えておくとよいでしょう｡
‫あるものは､ ある配列やリストの全要素を足し合わせるだけの集計です｡
‫さて､ ここで使えるちょっとした豆知識ですが､ PythonのいくつかのメソッドとNPのいくつかのメソッドのどちらを使うべきかというと､
‫Pythonのデータ型にはPythonのメソッドを使い､ numpy配列にはPI以外のメソッドを使うことです｡
‫だから､ これは一部です｡
‫実は､ これはマークダウンでやるかもしれない､ そうすればもう少し読みやすくなる｡
‫ヘディングはいらない｡
‫これをコードで表現する｡
‫そこで､ 今回の豆知識です｡
‫そして､ いくらか払ってください｡
‫これでよしとしよう｡
‫では､ 実際に見てみましょう｡
‫そこで､ 巨大なnumpy配列を作成することにします｡
‫膨大な量のアレイ｡
‫これは､ numpyがいかに高速であるかの力を如実に示すものでしょう｡
‫冒頭でお話ししたことを思い出してください｡
‫10万種類の要素を持つ巨大な配列を作成します｡
‫これは､ 機械学習の問題ではあまり珍しいことではないでしょう｡
‫そうそう､ そうなんです｡
‫サイズ10万円｡
‫どんな風に見えるのか､ ちょっとだけ見てみましょう｡
‫大量のアレイ｡
‫最初の100個の要素を表示することができます｡
‫これでよしとしよう｡
‫すべて乱数です｡
‫素晴らしい｡
‫それを10人に減らして､ もう少し余裕を持たせるかもしれません｡
‫素晴らしい｡
‫では､ JupyterノートブックやPythonのマジック関数の一つを使ってみましょう｡ マジック関数は､
‫先頭に小さなパーセント記号があるのを覚えておいてください｡
‫私たちはそれを時間し､ これは時間するつもりです｡
‫特定のコード行の実行にかかる時間？
‫Pythonを試してみるので､ 巨大な配列の向こう側にあるものもあります｡
‫ここにちょっとだけコメントを入れておきます｡
‫だからPython someで､ 時間を計ってください｡
‫πの巨大な配列が欲しい｡
‫そして､ ここにちょっとしたコメントを入れます｡
‫今度はペーズも｡
‫では､ これを実行し､ 何が起こるか見てみましょう｡
‫さて､ 10万通りの数字を足し算していくので､ 少し時間がかかるかもしれません｡
‫さて､ どうでしょう？
‫さて､ 1行目はこの行に､ 2行目はnon pi someに捧げるつもりです｡
‫Pythonを使った最初の行で､ 10万通りの数字の合計が17回かかっているんです｡ 1ループあたり9ミリ秒｡
‫プラスまたはマイナス2｡ 94ミリ秒､ 10回ループ｡
‫しかし､ 今は何らかの影響を暗示しています｡
‫そのアンプを付ける人もいれば､ 34マイクロを取る人もいる｡
‫この小さなマークは､ ミュー4マイクロ秒です｡
‫では､ それを変換してみましょう｡
‫マイクロ秒からミリ秒にしたい｡
‫1マイクロ秒＝0に等しい｡ 001ミリ秒
‫だから､ 変換しよう｡
‫これは単に数秒のことです｡
‫それをマイクロ秒に変換したいのです｡
‫7. 9ミリ秒､ 実際は2マイクロ秒です｡
‫これでよしとしよう｡
‫だから17｡ 9ミリ秒は17,900マイクロ秒に相当します｡
‫なんということでしょう｡
‫つまり､ 17,900を34で割ったものです｡
‫526に相当します｡
‫つまり､ num pies, npcのsumはPythonのsumより526倍速いということです｡
‫ですから､ 今後は､ NumPyのデータを扱う場合は､ NumPyのメソッドを使う､ という豆知識を覚えておいてください｡
‫しかし､ Pythonのデータ型を扱うのであれば､ Pythonのメソッドを使いましょう｡
‫なぜなら､ 最初に戻って､ numpyが数値計算を行うために最適化されているからです｡
‫ですから､ 数値計算を行いたいときは､ 常にnumpy版の集計関数を使うことを忘れないでください｡
‫集計関数といえば､ もういくつか見てみましょう｡ 2番目に作った配列を見てみましょう｡
‫さっきの2次元の配列がある｡
‫そのメインを探そう｡
‫ということで､ NPメインA2 3． 633.
‫美しい｡
‫さて､ これらを足すと､ 1＋2＋3ということになります｡ 3＋4＋5＋6です｡ 5 とし､ 総数で割った｡
‫だから6､ そんなことはしませんが､ そうやって平均を求めるのです｡
‫最大値が欲しければ､ MP maxを使えばいい｡
‫最小値を求めるなら､ MP min.でいい｡
‫標準偏差が欲しければ､ STD､ 標準偏差とすればよい｡
‫シフトタブを押せば､ いつでも指定した軸に沿って標準偏差を計算することができることを忘れないでください｡
‫もしアクセス権を渡さない場合は､ 配列全体に対して実行されます｡
‫素晴らしい｡
‫また､ 分散が必要な場合は､ 2つの素晴らしいシフトタブの上でnpを実行し､ 指定された軸に沿って分散を計算することができます｡
‫さて､ ダニエル､ 標準偏差と分散は一体何なんだ､ とおっしゃるかもしれません｡
‫さて分散､ ここで少しポイントを押さえておきましょう｡
‫ここで覚えておいていただきたいのは､ 分散とは､ 各数値が平均に対してどの程度異なるかの平均的な度合いを示す指標に等しいということです｡
‫だから､ より高い分散､ より広い範囲の数値が欲しいのです｡
‫分散が小さいと､ 数値の幅が小さくなる｡
‫美しい｡
‫そして､ 今度は標準偏差です｡
‫正式な定義は､ 標準偏差イコールです｡
‫標準偏差は､ ある数値群が主からどれだけ広がっているかを示す指標である｡
‫標準偏差は､ 実は分散の平方根に過ぎない｡
‫では､ 実際に試してみましょう｡
‫そこで､ MMPを手に入れたのです｡
‫もう一つの集計関数があり､ 2以上のNPの平方根は標準偏差に等しくなるはずです｡
‫では､ 書いてみましょう｡
‫標準偏差は分散の平方根に等しい｡
‫Shiftキーを押しながらEnterキーを押す｡
‫これでよしとしよう｡
‫この2つの数値は同じものです｡
‫さて､ 標準偏差や分散の背後にある数学についてもう少し調べたい方は､ 資料室にいくつかの資料を置いておきますので､
‫そちらをご覧ください｡
‫その他､ 次のビデオでは､ この2つの例をもう少し見てみましょう｡
‫実際には､ データサイエンスや機械学習､ 統計的な作業を行う上で､ 今後知っておくべき重要な概念である｡
‫では､ ちょっと休憩しましょうか｡
‫今まで作った配列にある集約関数を使ってみたり､ 自分で作ってみたりしてみましょう｡
‫そして､ またすぐにお会いしましょう｡