‘Python’ タグのついている投稿

改善点をネガポジ判定し、有用な改善点のみ抽出を行ってみる(検証編)

2022 年 1 月 11 日 火曜日 by itot

概要

当社では、日々終業後に、当日の業務内容を上司へメールで報告します。
週末には、個人が一週間に取り組んだ改善点もあわせて報告します。

前回、過去の改善点の中で「有用な改善点」のみを抽出することを目的として、ネガポジ判定の検証方法まで記載しました。
今回は、実際に仮説について検証した結果及び考察について、記載していきます。

(さらに…)

【変数】Python基礎の基礎 〜Part-1〜

2021 年 12 月 20 日 月曜日 by higakik

変数とは

変数とはコンピュータのメモリ上に用意された、データを入れる箱のようなものです。
以下参考プログラムです。

# 変数iに10という数値を代入
i = 10

# 変数sに「こんにちは」という文字列を代入
s = "こんにちは"

# print()という命令で、変数i、変数sの中身を出力
print(i)
print(s)

実行結果

10
こんにちは

変数の値を変更

変数の値はいつでも変更することができます。
例えば、変数iを利用して計算をした結果を、変数iの値に更新することが可能です。
以下参考プログラムです。

# 変数iに10という数値を代入
i = 10
# 変数iの値を出力
print("変数iの初期値は", i, "です")
# 変数iの値に10を足した値を変数iに代入
i = i  + 10
# 変数iの値を出力
print("計算後の変数iの値は", i, "です")

実行結果

変数iの初期値は10です
計算後の変数iの値は20です

ここで余談ですが、計算式がでてきたので、Pythonの計算式で使える記号を紹介します。

(さらに…)

【物体検知】来客を分析して、Teams通知(ヤクルトモデル構築編)

2021 年 11 月 30 日 火曜日 by uma

概要

前回のおさらい。

“ヤクルトレディGO!!(*)”の一連の流れを構築するための、環境構築・実装をした。
yolov5に元々ついているデフォルトモデルを使用して、分析してみた。
※ 詳しくは【物体検知】来客を分析し、Teams通知してみた(環境構築/実装編)
ご覧ください。

今回は、収集したヤクルトさん画像、社員画像を使って、「yakult」モデルを構築してみます。

(*) : ある方から「ヤクルトさんが来た!通知システム」の名前を頂戴しました。

モデル構築編

おおまかには、以下の手順で行います。

  1. 収集した画像を「ヤクルトさん OR 社員」にラベリング
  2. 分析に適したフォルダ構成に仕分け
  3. トレーニング(★学習モデル構築)
  4. トレーニング結果を使って、動作確認

順を追って説明します。

(さらに…)

【物体検知】来客を分析して、Teams通知(環境構築/実装編)

2021 年 11 月 5 日 金曜日 by uma

毎朝、弊社にはヤクルトさんが来られて、ヤクルトを売りに来てくれます。
購入頻度の高い部署は奥側にいるため、気が付いた人が、毎回声掛けしに行っています。

毎回面倒なので、ITっぽく解決してみよう、と思い立ちました。
今回は、写真撮影し、その結果が”ヤクルトさん”なら、Teamsに「ヤクルトさん来られました!」を
通知するシステムを構築してみます。
※ 撮影した写真がヤクルトさんである、という判定は”yolo”で行います

yolo : https://www.renom.jp/ja/notebooks/tutorial/image_processing/yolo/notebook.html

以下、簡単ですが今回作成する「ヤクルトさん通知システム」のシステム構成概要です。

(さらに…)

【Pythonライブラリ】sysとは?

2021 年 10 月 15 日 金曜日 by higakik

sysとはPythonのインタプリタや実行環境に関する情報を扱うためのライブラリです。
使用しているプラットフォームを調べるときや、
スクリプトの起動パラメータを取得する場合などに利用します。

(さらに…)

Jupyter Notebook 事始め

2020 年 11 月 16 日 月曜日 by egamit

こんにちは。

機械学習の分野でPythonがよく使われています。

今回、機械学習の分野でデータ分析のツールとしてよく名前が出てくるJupyter Notebookについての紹介です。

Jupyter Notebookは、ノートブックと呼ばれるファイル(.ipynb)にプログラムや説明の文章、実行結果を記録できるツールです。

システム開発で利用するEclipseなどのIDEと異なる点としては、「実行結果を記録する」という点で、例えば、以下のイメージのようにソースコードと実行結果をセットで記録できる(まさにノートブックのよう)ことができ、試行錯誤の結果をソースコードとともに他のメンバーに共有できる点だと思います。

 

以上、今回はJupyter Notebook 事始めということでまずは、Jupyter Notebookとはどういったものかということを説明いたしました。

Pythonの便利な構文-内包表記の紹介

2020 年 3 月 16 日 月曜日 by masy

今回はPythonの内包表記という構文を紹介します。

内包表記はリスト・辞書・集合等の生成を簡潔に記述するための構文で、
それぞれリスト内包表記・辞書内包表記・集合内包表記などと呼ばれます。
内包表記を上手に用いる事でコードの可読性を高める事ができます。

リスト内包表記

まずは内包表記を使用しない方法で、1~9の2乗の数値をリスト型で生成してみます。

data = []
for x in range(1, 10):
    data.append(x ** 2)

print(data)


>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81]

これをリスト内包表記で書き直すと下記の通り簡潔に記述できます。

data = [x ** 2 for x in range(1, 10)]
print(data)

>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81]

リスト内包表記にはif文を使う事もできます。
例えば、xが偶数の場合のみ取得対象とするには下記のように記述します。

data = [x ** 2 for x in range(1, 10) if x % 2 == 0]

その他の内包表記も使い方は同様なので、表記方法のみ紹介します。

辞書内包表記

{キー:値 for x in リスト等}

例)価格オブジェクトのリストから、価格IDと値の辞書を生成

{x.price_id: x.value for x in prices}

>>>
{'PRICE-0001': 100, 'PRICE-0002': 200, 'ITEM-0003': 300}

集合内包表記

{値 for x in リスト等}

例)契約オブジェクトのリストから、商品IDの集合を生成

{x.item_id for x in contracts}

>>>
{'ITEM-0001', 'ITEM-0002', 'ITEM-0004'}

ちなみに内包表記内のforやifは複数記述してネストさせる事も可能ですが、
可読性を損なうためそのような使い方はしないようにしましょう。
そのような場合は、内包表記を使わない方が可読性の高いコードになります。

これまで内包表記を知らなかったという方は、ぜひ上手に活用してみてください。

PythonのExcelライブラリ「openpyxl」の紹介

2019 年 10 月 7 日 月曜日 by masy

最近業務で使用した「openpyxl」というPythonライブラリを紹介します。

「openpyxl」はPython言語でExcelの読み書きを行うためのオープンソースのライブラリです。
現在も開発が続けられており、2019/09/25にバージョン3.0.0がリリースされています。

 

インストール方法

多くのPythonライブラリと同様にpipでインストールできます。

pip install openpyxl

 

既存のExcelファイルからデータを取得する例

簡単なサンプルとして、Excelファイルからデータを取得してファイルに書き出す例を見てみましょう。
このような単純なプログラムであれば数行のコードで実現できます。
(さらに…)