Python3関連のことを調べてみた2022年02月04日

Python3関連のことを調べてみた2022年02月04日
目次

fooddetection ~料理検知ライブラリの使い方~

以前、世界の料理の配色割合を調べていた時に画像から料理を抽出する作業が必要となったことがあった。
今回はその料理抽出作業をライブラリ化したので使い方をまとめてみた。
もし利用できそうな機会があれば是非利用してみて欲しい。

料理抽出作業とは

この記事で言う料理抽出作業とは一枚の料理画像から料理以外の要素をできるだけ排除し料理部分を残す作業のことである。

中華.jpg
↑ 料理抽出作業前画像
上の画像から料理部分だけを抽出し(背景などを削除したい)、下の画像のように背景など不要な部分を透明化させることを目的としている。

中華検知.png【Python】パッケージからクラスをimportする。モジュール名は省略可能

### 概要
Pythonのパッケージとモジュールのimportの方法に関してようやく腑に落ちたのでメモ。

#### 例:scikit-learnの graph_lasso_モジュールのGraphicalLassoクラスをimportする
https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/covariance/_graph_lasso.py#L338

sklearn/covariance/graph_lasso_.py 内にGraphicalLassoクラスが定義されています。

今回の例において、各オブジェクトの名称は以下のように解釈できます。

>sklearn: パッケージ <- ディレクトリであり、\_\_init\_\_.pyが存在するため covariance: パッケージ <- ディレクトリであり、\_\_init\_\_.pyが存在するため graph_lasso_: モジュール <- graph_lasso_.py という名のファイルが存在する GraphicalLasso: クラス <

元記事を表示

DjangoでiCalendar(.ics)ファイルをダウンロードする方法

## はじめに
こんにちは、reimeiです。
先日Djangoで開発しているwebアプリケーションにてDBに保存しているスケージュールをiCalendarファイルに書き出して返す処理を実装しようとした際、つまづいたので共有しようと思います。

## 解決策
▼とりあえず、必要なライブラリをインストール

“`bash
$ pip3 install ics
“`

▼実装例

“`python
from ics import Calendar, Event
import arrow
import os
from django.http import HttpResponse

def download_icalendar_file(request):
calendar = Calendar()
event = Event()
event.name = “飲み会”
event.begin = arrow.get(“2022-2-3 20:00:00”, “YYYY-MM-DD HH:mm:ss”) \
.replace(tzi

元記事を表示

ModuleNotFoundError: No module named ‘モジュール名’のエラーが出た時の対処法

# 前提
モジュールを使おうとしてimportを行ったところ、ModuleNotFoundError: No module named ‘モジュール名’のエラーが出てしまい、先に進めなくなったので、その対処法の備忘録です。

## 実行環境
Python 3.9.5
pip 22.0.2
jupyter notebook 6.4.3
macOS

こちらに記載するコードはjupyter notebookに書き込む場合を記載しています。
jupyter notebookでは、先頭に!がついているときは、ターミナル操作になるので、jupyter notebookをお使いにならずターミナルやテキストエディタを使う場合、各自ターミナルでの操作になると読み替えてください。

# やったこと
パスがつながっていないのでは、と考えたので、以下の方法でパスの設定をしました。

“`
!pip show モジュール名
“`

すると以下の様な出力結果が出ます。

“`
Name: モジュール名
Version: バージョン番号
Summary: モジュールの説明
Home-page: URL
A

元記事を表示

超初心者がAtcoder ProblemsのB問題を128回から135回までpythonで解いてみた件【ほぼ自分用】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

Guidebook

https://atcoder.jp/contests/abc128/tasks/abc128_b

“`python:practice.py
n = int(input())
restaurants = [list(input().split()) for _ in range(n)]
ans = []
for i in range(n):
ans.append([i+1,restaurants[i][0],int(restaurants[i][1])])
ans = sorted(ans, key=lambda x:x[2],reverse=True)
ans = sorted(ans, key=lambda x:x[1])
for ans_line in ans:
print(ans_line[0])
“`

最初にそれぞれのレストランの番号をインデックス番号+1でそれぞれ

元記事を表示

Python3エンジニア認定データ分析試験 合格体験記

#はじめに
2022年1月、Python3エンジニア認定データ分析試験に無事に合格できました。
私自身の背景を含めた合格までの勉強方法や、ポイントなどをお伝えできればと思います。
これから受験される方の、一助になれば嬉しいです。

#筆者の背景
・文系(数学的教養はかなり乏しいと思います)
・Pythonは実務では使用していません
・2021年10月にエンジニア認定基礎試験 合格済み

#試験の概要
Python3エンジニア認定データ分析試験は主教材である翔泳社出版の**「Pythonによるあたらしいデータ分析の教科書
」**から出題されます。
![スクリーンショット 2022-02-02 14.15.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1954118/649dee49-b01d-f3d6-77d6-6ab1e214e41f.png)
この教科書の内容から試験では、以下の範囲と割合で出題されます。
![SnapCrab_NoName_2021-11-8_18-46-22_No-00.pn

元記事を表示

超初心者がpythonでAtcoder Problemsを114回から解いてみた【9割自分用】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

754

https://atcoder.jp/contests/abc114/tasks/abc114_b

“`python:practice.py (2)
s = input()
ans = 753
for i in range(len(s)-2):
temp = abs(int(s[i]+s[i+1]+s[i+2])-753)
if ans > temp:
ans = temp
print(ans)
“`

連続する3桁の整数をつながりとして抜き出して、753(753にできる限り近い数字を求めたいから)で引いた時の絶対値を最初に求めます。 次にその時点で最小の差と比べて、抜き出した値の方が753との差が小さいかった場合抜き出した値と753の差がansに入っていきます。

Christmas Eve Eve

https://atcoder.jp/contests

元記事を表示

はじめてのGoogle AIY Voice Kit⑥【サンプルコード実行編】

# はじめに
前回のラズパイSSH接続編の記事は[こちら](https://qiita.com/yuzuki6v6/items/c64453e15a5d4a700a22)から:information_desk_person:
今回はサンプルコード実行編です。
LEDの操作、ボタンの操作、スピーチ(発話)、マイクの機能を試していきたいと思います。

# サンプルコードでできること
サンプルコードは[公式サイト](https://aiyprojects.withgoogle.com/voice/#makers-guide–python-api-library)に記述してあります。
また、今回は[こちら](https://ohmyenter.com/cheat-sheet-for-google-aiy-voice-kit-v2-with-python/)のサイトも併せて参考にさせていただきました。

サンプルコードでは、以下の機能を確認することができます。

– LEDの操作
– LEDのオン・オフ
– LEDの点滅
– LEDの明るさ調整
– LEDの点滅形式
– L

元記事を表示

超初心者がAtcoder ProblemsのB問題を99から110まで解いてみる件【10割自分用】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

Cut and Count

https://atcoder.jp/contests/abc098/tasks/abc098_b

“`python:practice.py
n = int(input())
s = input()
ans = 0
for i in range(1,n):
cnt = len(set(s[:i])&set(s[i:]))
ans = max(ans, cnt)
print(ans)
“`

まず、すべての切れる場所を全探索してset型にして重複を消す。次にどっちともにも共通する要素の数をlen(set(s[:i])&set(s[i:]))で調べ上げて、最大の数が入るようにmaxメソッドで比較し続ける

Stone Monument

https://atcoder.jp/contests/abc099/tasks/abc099_b

“`python:

元記事を表示

SymPyのシンボル生成について色々触れてみる

以前の記事でもSymPyのシンボル生成についてある程度触れていましたが、その記事で漏れている点などもぼちぼちあったため再度記事にまとめておきます。

インストール手順などは今回はスキップするため、必要な方は以下の記事などをご確認ください。

https://qiita.com/simonritchie/items/44242479f0df86fffff5

※記事の執筆者は理系出身ではないため数学の知識などで粗い点はご容赦ください。

# 使うもの

– Python 3.9.0
– Jupyter (VS Code上のものを利用)
– sympy==1.8

# Symbolクラスによるシンボル単体の作成

一番シンプルなシンボル単体の生成法としてはSymbolクラスを使う形となります。第一引数には基本的に割り当てる変数名と同じ名前の文字列を指定します。

“`py
from sympy import Symbol

x = Symbol(‘x’)
y = Symbol(‘y’)
“`

# symbols関数による複数シンボルの一括作成

symbols関数で複数のシンボルを同

元記事を表示

poetry installを色んな環境でストレスなく行うworkaround

# はじめに
`poetry` は `Python` のパッケージマネージャとしてデファクトになりつつある(個人的な感想)。

`poetry` では、以下の二つのファイルを使って、ライブラリを管理している
* `pyproject.toml` ・・・ 使っている `Python` やライブラリのバージョンを管理
* `poetry.lock` ・・・ 各ライブラリの実際のバージョンや依存関係を管理

`poetry.lock` ではライブラリのハッシュ値も持つことで、 `poetry install` 時のライブラリの探索時間を短くしている。

# 問題点
`poetry.lock` はライブラリごとのハッシュ値を持っているので、インストールする先のOSが異なったりすると、以下のようなエラーになる。

“`bash
• Installing libclang (12.0.0): Failed

RuntimeError

Retrieved digest for link libclang-12.0.0-2-py2.py3-none-win_amd64.whl(sha2

元記事を表示

Python 簡単にランダムな名前(文字列)を生成する

# 参考

[Python実践入門 ](https://amzn.to/2zBKOFm)

# 方法1 uuid

標準モジュール

“`python
import uuid

for i in range(10):
print(str(uuid.uuid4().hex))
“`
“`
ad37a981e8774484823d3446c1d7cf3a
69b36e62cebd49afa138241c1c9d6282
8329326e86f4417c817bfe372769a96f
2fb71832bb7242c6a7ba7d78c5405cf4
e4bcea0b3f4e45e1a093923145f2488c
8ee8734a6abd4e50a21c923c83f3c1eb
3980c4574fc044dcb18e0802abaf11e1
a3f655f41a6a4c7dafa9d722676a0a3c
a97c6c33963f4795907b71b3d4f04b2b
040e31e4ac804de7b8fd81cf8308a3c4
“`

# 方法2 names

元記事を表示

Wordleは4つの単語を覚えるだけで必ず正解できる

# Wordleとは?

フィードバックを頼りに、隠された 5 文字の英単語を当てるゲームです。
要は「マスターマインド」や「ヌメロン」等と呼ばれるゲームの英単語版です。

知らない方でも以下のような奇妙なツイートは目にしたことがあるかもしれません。
![スクリーンショット 2022-01-29 19.53.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123809/c2650482-269b-3b99-b792-283a59cca814.png)

# この記事は何?

Wordleにおいて、最初に**ある4つの単語を入力すれば 100% 正答にたどりつける**ことが Python を使った解析でわかりました。

具体的には、
– **それら 4 つの単語を入力した時点で解の候補が平均 1.1 個まで絞られる
– 96% 以上の確率で 5 回で正答できる
– 100% の確率で 6 回以内に正答できる**
といった感じです。

本記事では、それらの単語をどのように探したかをザックリ解説しつつ(ネ

元記事を表示

超初心者がAtcoder ProblemsのB問題を86から96まで解いてみる件【10割自分用】

解き方を忘れないためにまとめてるだけなのでコードはめちゃくちゃ不細工です、ここもっと良くできるよって場所あったら教えていただけるとありがたいです!!

B – 1 21

https://atcoder.jp/contests/abc086/tasks/abc086_b

“`python:practice.py
a,b = input().split()
num = a+b
if (int(num)**0.5).is_integer():
print(“Yes”)
else:
print(“No”)
“`

数字を0.5乗してルートを乗っけるのと同じことをして、もし平方数だったら、integer型になるのでis_integer()で判定する

B – Coins

https://atcoder.jp/contests/abc087/tasks/abc087_b

“`python:practice.py
a = int(input())
b = int(input())
c = int(input())
x = int(input

元記事を表示

Python が削除された macOS 12.3 以降で Python 環境をパッケージングする

現時点(2022/02/01)では,macOS の最新版は macOS Monterey 12.2 ですが,次期 macOS アップデートの 12.3 では,macOS の Python 環境に大きな変化がもたらされることになりました。

* [ニュース](https://eclecticlight.co/2022/01/29/looking-ahead-to-macos-12-3-python-dropbox-and-onedrive-changes/)

これは,[2019年に予告されていた「スクリプト環境の粛正」](https://developer.apple.com/documentation/macos-release-notes/macos-catalina-10_15-release-notes)がいよいよ始まったのでしょう。

> * Scripting language runtimes such as **Python**, **Ruby**, and **Perl** are included in macOS for compatibility with le

元記事を表示

AOJトライに関する知識知見の記録共有:ITP2_11_D

# タスク概要

Enumeration of Combinations

https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP2_11_D

# コード実装例
TIPS

1. 例外処理含む評価パターンを追加

“`Python
import pprint, sys, time
import itertools

def agg(lst):
return sum([2**v for v in lst])

def core(arg, adv=True, n_ret=10):
ret = []
n = arg[0]
k = arg[1] if len(arg) > 1 else int(n/2)

if adv:
ret = sorted([[agg(array), array] for array in itertools.combinations(range(n), k)],
key=lambda x: x[0]

元記事を表示

Pythonで特定ディレクトリ内の特定文字列を含むファイルを列挙する

表題の通り,pythonで特定ディレクトリ内の任意の深さにあるファイルを列挙するプログラムを書きました.

実行例は以下の通りです.

“`shell
# pathはホームディレクトリを起点として考えています.
$ python3 find.py –word “word to search!!!” –path target_directory
“`

コードは以下の通りです.

“`python:find.py
import os
from argparse import ArgumentParser
from typing import Tuple

def _is_word_in_file(word: str, file: str) -> bool:
with open(file, ‘r’) as f:
for line in f:
if word in line:
return True
else:
return False

def _get_a

元記事を表示

Python3でのビルトインローカルサーバ

ローカルサーバ。やっぱあると便利だよね

## すぐ忘れるのでメモ
“`bash
python3 -m http.server
“`

元記事を表示

OpenCV(Python)で手のひらの面積を算出する

# OpenCV
“`
pip install opencv-python
“`

# 手順の概要
**1.方眼の上で手のひらの画像を撮る**
**2.方眼の部分だけを残しトリミング**
**3.OpenCVで読み込んでグレースケール・二値化(python)**
**4.二値化した画像で手のひらの輪郭を探索(python)**
**5.「手のひらのピクセル数」と「全体のピクセル数」の比により面積を算出(python)**

# 1.2.画像取得とトリミング
取得した画像
![S__13139991.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601935/1d26dd7a-cd7d-eef3-1786-28548411f58c.jpeg)
トリミング後
![S__13139993.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601935/abc39679-13fc-e001-4d27-ce6dae875038.j

元記事を表示

猫と犬の判別ツールを改良してみました

#目的
  画像判別の精度向上

#ステップ(目次)
  <1>公開されている画像判別で精度が低いものをピックアップ
  <2>現状の精度確認
  <3>改良の方向性案を検討
  <4>コード変更による改良
  <5>転用学習を利用した改良
  <6>サンプル評価

#公開されている画像判別で精度が低いものをピックアップ
“`py
# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python
# For example, here’s several helpful packages to load
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_cs

元記事を表示

OTHERカテゴリの最新記事