EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

構造化データを前処理する際のPython逆引きメモ

目的

データ分析の仕事をする際は、Pythonで専用のスクリプトを書いたりして
実施することがほとんどですが、自分がやりたい処理をするのに未だに
pandasやnumpy, matplotlibなどの使い方を調べたりすることがあります。
今回は、csvファイルを読み込んだときのような構造化データを処理する
際によく使うコードを、今後すぐ思い出せるようにメモに残しておこうと
思います。

目次

  • 目的
  • 目次
  • DataFrameの各項目型やメモリサイズを確認する
  • DataFrameに欠損値が含まれているか調べる
  • DataFrameに含まれる各データの統計量を計算する
  • データ間の相関係数を計算する
  • 各データの出現数をカウントする
  • 欠損値を除外する
  • 欠損値を補完する
  • 文字列を数値へ置き換える
  • 不均衡データを均衡化する
  • 文字列を集約する
  • データを正規化する
  • データをグループ化する
  • 主成分分析
続きを読む

JavaとSpring BootによるWebアプリ開発の基礎

目的

今後も長くソフトウェアエンジニアとしてのキャリアを築いていくことを
考えたときに、Webやネットワーク、データベースといった技術を利用した
システムを開発できる能力は必須だなと思うようになりました。

そこで、ちょうど今年から仕事でJavaを扱うようになったのと、つい最近
上記の書籍が発売になったのをきっかけに、Webアプリ開発を勉強し始めました。

今回は、その勉強の一環であるタスク管理アプリと、その開発を通じて学んだ
Webアプリ開発の基礎についてまとめたいと思います。

目次

  • 目的
  • 目次
  • Webアプリとは
  • Webアプリの仕組み
  • HTTP通信
  • HTTP通信とHTTPS通信
  • フレームワークを利用したアプリ開発
  • Spring BootによるWebアプリ開発
  • Spring Bootを用いたタスク管理アプリの開発
    • 要件定義
    • 開発用プロジェクトの作成
    • プロジェクトの中身の確認
    • プラグインの設定
    • IntelliJからアプリをビルド・実行するための設定
    • アプリのビルドと実行
    • アプリをコマンドラインから起動できるようにする方法
    • Maven Wrapperとは
    • MVCモデル
    • コントローラを実装するためのアノテーション
    • データベースの導入
    • SQLによるデータベースの操作
    • Javaプログラムからのデータベース接続
    • H2データベースの利用
    • データベーステーブルの初期化
    • データベース操作用クラスの作成
      • JdbcTemplateクラス
      • DI(Dependency Injection: 依存性の注入)
      • タスク情報を保持するモデルの作成
      • データベースにタスク情報を追加するメソッドの実装
      • タスク情報を全て取得するメソッドの実装
      • データベースからタスク情報を削除するメソッドの実装
      • データベースのタスク情報を更新するメソッドの実装
      • データベースから特定のタスクidを取得するメソッドの実装
    • コントローラクラスの作成
      • @Controllerアノテーションによるコントローラの作成
      • TaskListDaoクラスのフィールドへの追加
      • タスクを追加するエンドポイントの作成
      • HTTPリクエストにおけるGETとPOST
      • テンプレートエンジンによるビューの作成
      • Thymeleafの利用
      • HTMLテンプレートの作成
      • タスク一覧表示機能のエンドポイントの作成
      • CSSによるテンプレートの装飾
      • タスク情報を削除するエンドポイントの追加
      • タスク情報を更新するエンドポイントの追加
    • 動作確認
続きを読む

Kth Largest Element in a Stream問題とC++サンプルコード

背景

プログラミングテストの練習問題として、
優先度付きキューの一種であるヒープを利用した
Kth Largest Element in a Stream問題を解いたので、
その解法をメモしておく。

目次

  • 背景
  • 目次
  • 問題
  • 解法
続きを読む

Reverse Linked List問題とC++サンプルコード

背景

プログラミングテストの練習問題として、
連結リストの並びを逆にするReverse Linked List問題を
解いたので、その解法をメモしておく。

目次

  • 背景
  • 目次
  • 問題
  • 解法
    • 1. Iterativeパターン
    • 2. Recursiveパターン
    • 全体サンプルコード
続きを読む

Valid Parentheses問題とC++サンプルコード

背景

プログラミングテストの練習問題として、
ハッシュマップとスタックを利用した
Valid Parentheses問題を解いたので、
その解法をメモしておく。

目次

  • 背景
  • 目次
  • 問題
  • 解法
続きを読む

Add Two Numbers問題とC++サンプルコード

背景

プログラミングテストの練習問題として、
連結リストを用いたAdd Two Numbers問題を
解いたので、その解法をメモしておく。

目次

  • 背景
  • 目次
  • 連結リスト関連の類題
  • 問題
  • 解法
続きを読む