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

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

『Python1年生』で勉強中(その2)

## この記事について
『Python1年生』(以下、書籍)でPythonを学習する初心者の記録です。
今回も大したことは書いていませんが、こういうのは習慣的にやるべきだと最近読んだ別の本に書いてあったので、とりあえず書き散らします。

■ バックナンバー
・[『Python1年生』で勉強中(その1)](https://qiita.com/megrim_q/items/c1417f507e96c1fb7015)

## 実行環境
| OS・MW | バージョンなど |
|:-:|:-:|
| OS | Windows 10 Pro 21H2 19044.1645 |
| Python | 3.10.4 |
|IDLE |3.10.4|

## やったこと

引き続き、IDLEに書籍のサンプルプログラムを入力してひたすら試していました。
その他、ときどき思いつきで書き方を変えてみたりなど。

## 気になったところ

### Pythonについて

– 文字列の一部を抜き出す書き方、例えば「w[1:10]」のように書く場合、
「1番目~10番目まで抜き出す」のかと思いきや、「

元記事を表示

FastAPIでネストリクエストボディJSON

サブモデル定義する
なっかなか見つからなかったので
https://fastapi.tiangolo.com/tutorial/body-nested-models/

元記事を表示

Google Drive APIでOCRをしよう!

# はじめに
アクセンチュアの赤石です。必要があって、OCR機能をいろいろ調べています。
Google では、Google Vision APIとGoogle Driveの機能があります。

[Google Vision APIの記事](https://valmore.work/cloud-vision-api-ocr/)
[Google Driveの記事](https://cloud-ace.jp/column/detail60/)

大量にOCRをしたい場合は、普通に考えるとAPIとして使えるGoogle Vision API一択なわけですが、どうも軽くテストした限り、Google Drive APIの方が認識精度が高いみたいなのです。そもそも、同じグーグルで同じ機能のエンジンが2つあることからして謎なのですが。。。

それで、**普通であればUI経由で使うGoogle DriveのOCR機能をAPIで使いたい**と思ってしまったわけです。
結論として、頑張れば**Google DriveのOCR機能をAPIで使うことは可能**でした。

当記事は、そのための手順を示すものとなりま

元記事を表示

H&Mにおけるレコメンデーション

みなさんこんにちは、現在Aidemyを受講しており、データ分析を勉強しております。

学習したことを活かし、この記事では
カグルのH&Mのレコメンデーションモデルをしていこうと思います。
今回のコンペティションはこのような内容となっています。
https://www.kaggle.com/competitions/h-and-m-personalized-fashion-recommendations
##### コンペに参加した理由
なぜ、私がこのコンペティションに参加したのかを簡単に言いますと、
データサイエンスの知見を使って、レコメンドシステムを使い、自ら好きなファッション業界を盛り上げていきたいと考えているからです。

前段ですが、このコンペディションのEDAも書いたので、これも添えて頂きたいと思います。
H&M Personalized Fashion Recommendations:
https://www.kaggle.com/code/uchiiyusaku/h-m-eda

##### ライブラリのインストール
“`
#初期の必要なライブラリをインポート
impo

元記事を表示

Pytorchで学習再開

![omoide048.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/2ae8c95f-47f3-373e-9076-c3630a27d658.jpeg)

# Pytorchでモデルをsave/loadして学習を途中から続ける方法です

学習の途中で、(コンピューターや人間の都合で)一旦中断して、後で学習を再開したい時があります。
Colabのような連続使用時間に制限があるような環境や、学習エポック数の初期設定に追加して学習したいときなどに、モデルの重みをファイルとして保存して、後でロードして再開したい。

# モデルを保存するだけでは、同じ正解率から学習再開できない

モデルの保存と読み込みは以下の通りですが、これは、復元したモデルをevalモードで単に推論に使うときは機能しますが、学習を再開しようとすると、ロスや正解率が保存前から継続せず、初期値に戻ってしまっていることに気づきます。

“`python
# 保存
torch.save(model.state_dict(), PA

元記事を表示

ABC248 A~DをPythonで解く!

# はじめに
そろそろ茶色コーダーから抜け出したいChunky_RBP_Chanです。
ABC248 A~Dを解いたのでシェアします。

https://atcoder.jp/contests/abc248

# A: Lacked Number
https://atcoder.jp/contests/abc248/tasks/abc248_a
## 問題
0~9のうち9種類使った文字列Sが与えられるので使われていない数字を求めよ
## 解答
文字列を全部見て、ない数字を出力すればよいです。

“`python
S = input()
for i in range(10):
for j in range(len(S)):
if i == int(S[j]):
break
else:
print(i)
break
“`
# B: Slimes
https://atcoder.jp/contests/abc248/tasks/abc248_b
## 問題
一回叫ぶごとにK倍に増殖するスライムがA匹い

元記事を表示

AtCoder Python 解答通りなのにTLE

# 回答通りのコードなのに、、、
PythonでとあるC問題に挑戦していました。
しかし、実行しても
**「TLE」**
の結果が返ってくる、、

あきらめて解答を見てみたら、
**合ってるやん!!**

まさかこんなに早い段階でPythonの限界が、、!?

# 対策
**言語をPyPy3で実行する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522297/5cf03efa-4374-c56a-7603-f0b73b35b5c7.png)

PyPyはJITコンパイル機能があり、Pythonのコードを高速に実行できる言語です。ほぼほぼPythonのコードでもコンパイルしてくれます。

元記事を表示

【AtCoder】PythonでABC248のA, B, C, D, Eを解く

自分がコンテストでやった考察と実装を書いてみます.

# 目次

* [A問題 『Lacked Number』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#a%E5%95%8F%E9%A1%8C-lacked-number)
* [B問題 『Slimes』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#b%E5%95%8F%E9%A1%8C-slimes)
* [C問題 『Dice Sum』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#c%E5%95%8F%E9%A1%8C-dice-sum)
* [D問題 『Range Count Query』](https://qiita.com/yassu/items/ae83817838c2c25e5a1d#d%E5%95%8F%E9%A1%8C-range-count-query)
* [E問題 『K-colinear Line』](https://qiita.com

元記事を表示

PytorchとStreamlitでウマ娘の顔を検出するアプリケーションを作成する

## はじめに

私は現在大学で機械学習を用いて医療データの分析を行っています.
しかし,分析対象が表形式データであるため,深層学習に触れたことはありませんでした.

さすがに今どき深層学習に全く触れたことがないのはまずいと思い,春休み期間を利用して勉強してみました.

今回は勉強内容のアウトプットとして深層学習の定番(?)である顔分類に挑戦してみました.
分類対象は私の大好きな**ウマ娘**です!(~~ちなみに一番好きなウマ娘はシンボリルドルフです~~)

顔画像の分類に使用するCNNモデルは`Pytorch`を利用して構築し,アプリケーション部分は`Streamlit`を利用して作成しました.

実際に使用したソースコードはコチラ(アプリケーションの実行方法等の記載もあります):point_down:

https://github.com/tatsu0428/UmaMusume_detection

## アプリケーション実行例

下図のようにウマ娘の画像を読み込むと,顔を四角枠で囲み,対応するウマ娘の名前を表示します.
![localhost_8501_.png](https:

元記事を表示

tavern でRestAPIのテスト

# はじめに

WEB APIのテストでtavern というものがあると聞いたので調べてみました。
自分でRestAPIサーバをたてて、GET/POST でテストするところまでできました。

# Example を試す

以下、

https://tavern.readthedocs.io/en/latest/examples.html

に書いてあることをフォローしたときのメモです。

### yamlを書く

JSON Placeholder APIを使ったテストいうのが紹介されています。これ、以下のようなレスポンスが返ってきます。

“`shell
$ curl https://jsonplaceholder.typicode.com/posts/1
{
“userId”: 1,
“id”: 1,
“title”: “sunt aut facere repellat provident occaecati excepturi optio reprehenderit”,
“body”: “quia et suscipit\nsuscipit recusandae

元記事を表示

ABC248での学び

# ABC248で得た学び
今日はA,Bだけ解けて、Cは考えたけど難しそうすぎて飛ばしました。
その後のD問題を後から友達と答え合わせする中で得られた学びを記します。

* 1. ソート済み配列に対するBisectを使ったインデックス取得
D問題では、ソート済みの配列からある数L,Rについて、”L<X<R”を満たすような要素の数を取得する必要がありました。
僕は初め数列内のすべての要素に対してL

元記事を表示

色んなアジア文字のユニコードブロックを描いてみたり

最近色んな国で使われている文字について興味を持っているので、たくさん勉強しています。

この世界には色んなタイプの文字が使われていますね。特にアジアの国ではバリエーションが多くて興味深いです。

そして現代のコンピューターはユニコードで色んな文字を表示することができて便利です。

ここではpythonを使って、各種類の文字を一気に羅列するpdfファイルを作成してみたいです。

# 基本

ここで主に使われるのはreportlabとpandasです。

reportlabの使い方はこれらの記事を参考に
https://qiita.com/takahashi_you/items/8c5fb1f07db1825c67a5
https://qiita.com/godan09/items/13866970972bf3a1c243
https://qiita.com/ekzemplaro/items/a3e3d4419a560f3185e3
https://qiita.com/shiro01/items/8349a95df97609c2de7f

文字のユニコードのブロックについてはこちら ht

元記事を表示

ラズパイでプライバシーに配慮した写真を撮る

# はじめに
個人識別に厳しい昨今、ラズパイのカメラで撮影する際に不用意に顔写真を保存したくない状況もあるんじゃないかなと思います。
自分や家族の写真を撮影した際、プライバシーに配慮して顔にスタンプを上書きした状態でSNSなどに投稿している方がいますが、同じようなことを自動でやるようにできないかと思い、MTCNNの顔検出を使ってやってみました。

# やったこと
ラズパイのカメラで撮影したキャプチャデータを保存する前に顔検出にかけて、顔の部分を塗りつぶします。目鼻口の位置だけ書いてあげることでどこを向いているかくらいはわかるようにしてみました。

撮影した画像は「privacy_camera.jpg」というファイル名で出力します。

“` python
import cv2
from mtcnn import MTCNN

filename = “privacy_camera.jpg”
detector = MTCNN()

# 画像の取得
capture = cv2.VideoCapture(0)
ret, frame = capture.read()
capture.releas

元記事を表示

[pandas] df.head()の列を全て表示する

“`python
pd.set_option(‘display.max_columns’, None)
“`

“`python
df.head()
“`

するとすべての列が表示される

元記事を表示

オブジェクト指向を用いた線形常微分方程式の数値計算(Python)2-2:Euler陽解法クラス

# 1. はじめに
 常微分方程式の離散化方法の一つであるEuler陽解法を解説し、Pythonで数値計算を行うためのEuler陽解法クラスを実装します。

 同シリーズの記事はこちらです。
– [オブジェクト指向を用いた線形常微分方程式の数値計算(Python)1:線形常微分方程式クラス](https://qiita.com/itotomball/items/8c25ffa93070603af794)
– [オブジェクト指向を用いた線形常微分方程式の数値計算(Python)2-1:差分法基底クラス](https://qiita.com/itotomball/items/344789710d0ba1b9ebcd)

# 2. Euler陽解法
 $N$ 階線形常微分方程式は、式$(1)$のような一階連立常微分方程式に書き換えられました。
$$ \phi_k^\prime = \rho_k(x,\phi_0,\ldots,\phi_{N-1}),\qquad (k=0,\ldots,N-1). \tag{1}$$
差分法では、この左辺の一階微分を差分で置き換えます。
$$ \phi^\p

元記事を表示

これから更に流行るであろうフォトリアルな世界について勉強しよう 光と色の計算

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/581710/778392ff-591b-91b8-6e9c-a26b91717d06.png)
去年Googleが発表した「Total Relighting」
一枚の画像から、人物を切り出し、背景に合わせて人物のライティングを自動で調整する手法。

・・・らしいのですが。すごいですよね。
フォトリアルというと、最近は3D分野の目覚ましい発展を連想しますが、
3Dはどうしても装置や機材に依存するイメージが付きまといます。
もしもiphoneなどの単眼カメラで実現できるようになれば、
表現の世界はさらに次のステージに進めそうです。

ということで今回はそんな「フォトリアル」な世界について勉強します。
できるだけ数式と実際のソースに基づいて理解を深めていきます。(目標)

参考:
https://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-overview/light

元記事を表示

Livedoorニュースコーパスの1記事をMeCabで形態素解析して名詞だけを抽出するまで

# 環境
Python 3.7.6(Jupyter Notebook)
MeCab 0.996

# Livedoorニュースコーパスのダウンロード
https://www.rondhuit.com/download.html からldcc-0140209.tar.gzをダウンロード・解凍。

# MeCabで名詞の抽出
次のコードを実行して、「独女通信」の1記事を形態素解析・名詞のみ抽出する。
“`python
import MeCab

# 形態素解析の辞書を指定
mecab = MeCab.Tagger(“-Ochasen”)

# 適当なパスを指定
text = open(“dokujo-tsushin-6915005.txt”, mode=”r”).read()

result = []
for line in mecab.parse(text).splitlines():
if “名詞” in line:
result.append(line.split()[0])

print(result)
“`
### 《

元記事を表示

【Python】アドホックな分析(EDA)でもloggingしたい! 〜 データ分析の再現性を高める 〜

Pythonでアドホックな分析、あるいは探索的データ分析(EDA)をやっていく過程で、

**「あれ、あの時の結果(出力)って、どうやって出したんだっけ…?」**

という状況になることはありませんか? **筆者はあります。**

データ分析をするときに、どんなことを試したか自動で記録されたらいいのに…
と思ったので、それを実現する方法を記事にします。

結論からいうと、いい感じにloggingとデコレータを使おうという内容です。
なお、この記事の中でloggingの詳細についての解説は行いません。 [^3]
[^3]:loggingの詳しい仕組みについては、こちらのページがおすすめです。
[【Python】仕組みを理解してログ出力を使いこなす](https://hackers-high.com/python/logging-overview/)

# この記事の想定読者
– Python(特にJupyter)でデータ分析をすることがある
– 投入する変数をいろいろ変えて試行錯誤することがある
– 一度やった分析の条件をあとから確認できるようにしたい
– **データ分析の再現性を高

元記事を表示

【Python/GUI】PySide6のチュートリアル、作りました

# はじめに
PythonのGUIライブラリの一つである「PySide6」の使い方について解説していきます。

これからPySide6を使っていこうと思っている方に向けて記載しております。
なるべく嚙み砕いて、それでいて簡潔にしたつもりです。

また、この記事ではよく使うであろうウィジェットに絞っております。
そのほか私が「おっこれいいなっ!」って思ったものがあれば、別の記事を記載して、そのリンクを貼っていきます。

# 環境
* Windows 11 Home
* Python 3
* ここでは Python 3.9.9 を使用
* テキストエディタ
* 秀丸エディタ

# PySide6って何ぞや?
世界で超絶大人気GUIライブラリの一つである「Qt」をPythonでも使えるようにしたのがPySide6です。

本来QtはC++で使用するものですが、あまりの人気っぷりにPythonでも使用できるようになりました。
いつからかは分かりませんが。

似たようなライブラリにPyQtってのがありますが、使える機能はほぼ同じです。
(全く同じかもしれません。PyQtは

元記事を表示

[kaggle] dataframeの容量を圧縮して、メモリー不足を回避する

ソースコード

“`python
def reduce_mem_usage(train_data):
“”” iterate through all the columns of a dataframe and modify the data type
to reduce memory usage.
“””
start_mem = train_data.memory_usage().sum() / 1024**2
print(‘Memory usage of dataframe is {:.2f} MB’.format(start_mem))

for col in train_data.columns:
col_type = train_data[col].dtype

if col_type != object:
c_min = train_data[col].min()
c_max = train_data[col].max(

元記事を表示

OTHERカテゴリの最新記事