- 1. Python学習#1
- 2. Python スクレイピング 参考サイト
- 3. 建設業許可業者一覧PDFをCSV変換
- 4. PythonでAtCoderを解くときにちょっと得するメモ
- 5. 深層学習で、ソーセージドッグとソーセージを見分ける。
- 6. FlaskとPostgreSQLの連携
- 7. FlaskをCentOSで動かす
- 8. AWSの無料期間が終了するのでEC2からlambdaに移行した
- 9. ABC278をPythonとC++で
- 10. [PySimpleGUI] ボタンが押されるたびにInputボックスを追加していく
- 11. テキストを形態素解析して品詞ごとに色付けする
- 12. torchvision.modelsのpretrainedが非推奨になっていた
- 13. docker-composeで建てたコンテナにアタッチしてリモートデバッグする方法
- 14. 【初心者】Kaggleのデータセットを元に、脳梗塞の発症を的中させるモデルを構築してみる
- 15. STEM simulation using abtem
- 16. 欠損値の数と目的変数の関係を可視化する。
- 17. AtCoder Beginner Contest 278 A問題とB問題をPythonで解いてみました
- 18. PythonでCloudStorageにあるCSVファイルをDataFrameで読み込む
- 19. React+Socket.ioの画面からCelery経由でPythonプログラムを呼び出すやつ
- 20. C# から Python を呼ぶ Pythonnet の使い方
Python学習#1
Pythonで学んだことをアウトプットすることにしました。
まずは1日目。環境は
VS code
Python3.9.12
M1 Mac たまにWindows
だいたいこんな感じです…
学習は基本的にインターネット、書籍の独学です。
今日は辞書型、for分のzip,enumerate,tqdmについて学びました。
基本的なことですがしっかりと理解をしておきたいので復習です。
調べたり解説を見たりしているとまだまだ自分のものにないと実感、、、辞書から
“`
x = {‘apple’:120,’orange’:200,’painapple’:500}
apple_price = x[apple]
“`
辞書の値を取り出せる
“`
x = {‘apple’:120,’orange’:200,’painapple’:500}
x[apple] = 150
“`
keyのappleに対しての値の書き換え
“`
x = {‘apple’:120,’orange’:200,’painapple’:500}
y = {‘tomato’:170,’poteto’:190}
x.upda
Python スクレイピング 参考サイト
https://kino-code.com/python_finance-01/
https://nanjamonja.net/archives/1257
https://shikaku-mafia.com/python-scraping/
https://tiero.jp/magazine/python-scraping-sample-code/
https://ai-inter1.com/python-webscraping/#st-toc-h-3
建設業許可業者一覧PDFをCSV変換
https://www.mlit.go.jp/totikensangyo/const/1_6_bt_000089.html
> <おことわり>
> ※検索システムのアクセス集中による不具合が発生しているため、一時的に掲載しております。
> ※この建設業者一覧及びこの建設業者一覧を加工・変更したものを商用利用、出版、不特定又は多数に対して二次配布することは許可しません。# ダウンロード
“`
# 建設業許可業者一覧のPDF
wget https://www.mlit.go.jp/totikensangyo/const/content/001520358.pdf# tabula-java
wget https://github.com/tabulapdf/tabula-java/releases/download/v1.0.5/tabula-1.0.5-jar-with-dependencies.jar
“`# PDFからCSV変換
“`
# ヒープの最大サイズを12GB
java -jar -Xmx12G tabula-1.0.5-jar-with-dependenc
PythonでAtCoderを解くときにちょっと得するメモ
# はじめに
これからPythonでAtCoderを始めてみよう!となったときに、知っておくとちょっと得する小技の紹介です。
少しPythonコードかけるかな. っていう方向けです。## その1(出力)
“`Python:sample.py
“””求める出力”””
1 2 3 4 5
#一般的
nums = [1, 2, 3, 4, 5]
str_nums = []
for num in nums:
str_nums.append(str(num))
print(” “.join(str_nums))
>>> 1 2 3 4 5
#楽な方法
nums = [1, 2, 3, 4, 5]
print(*nums)
>>> 1 2 3 4 5
“`
(一般的かどうかはさておき…)
AtCoderの出力でありがちな空白区切りの複数出力。Pythonにあるjoin関数を用いることで適切な出力になりますが、 **join関数はリストの要素が全てstr型(文字列型)でなければエラーになります。** そのため、もしも出力が数字である場合は、(面倒ですが)一度str型に変
深層学習で、ソーセージドッグとソーセージを見分ける。
![画像11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1001770/8b2c9bde-d693-1a4a-f6ca-781eff324c66.png)
What is sausage dog?
みんな大好きダックスフンドのことです。ダックスフンドは、別名、ソーセージドックと言われております。その名の通り、ダックスフンドはソーセージそのものです。長年連れ添っているワンちゃんがダックスフンドなのですが、すこしポンコツでそこがまた、かわいいです。行きつけの獣医師さんから「ナイスバディ」と褒められるほどの短足胴長です。
ソーセージドッグとソーセージを見分けたい。
深層学習は、画像分類において、非常に強力な手法です。そんな深層学習を用いて、ソーセージドックとソーセージを見分けようと思います。日頃から、「ソーセージぽいな」とずっと思っていました。2つは似ているので、AIはちゃんと見分けられるのでしょうか。気になる。
How to
画像を集める => ラベリング
FlaskとPostgreSQLの連携
[前回の記事](https://qiita.com/outsider-kithy/items/40accddcb7f3fab6d749)に引き続き、
HerokuにデプロイしていたFlask,PostgreSQLを使ったアプリケーションを、さくらのVPSに移した際の備忘録です。今回はCentOSにインストールしたPostgreSQLをFlaskアプリケーションと連携させる手順です。
## PostgreSQLを操作する「postgres」ユーザーと「postgres」グループを作成
adduser -U postgres
Enter new password://postgresユーザー用のパスワードを入力
Retype new password://もう一度同じパスワードを入力## /usr/local/に「pgsql」ディレクトリを作成して所有権を「postgres」ユーザーに変更
mkdir /usr/local/pgsql
chown postgres:postgres /usr/local/pgsql## postgres
FlaskをCentOSで動かす
Herokuの無料枠廃止に伴い、自分で作ったFlask,PostgreSQLを使ったアプリをさくらのVPSに移しました。
備忘録として、その際の手順をメモ。### バージョン
CentOS 7
Python 3.7.9
mod_wsgi 4.5.6## apacheのインストール
yum install httpd## apacheを起動
systemctl start httpd## サーバーの起動とともにapacheが自動で起動するように設定
systemctl enable httpd## http通信とhttps通信を許可するようにファイアーウォールを設定
firewall-cmd –zone=public –add-service=http –permanent
firewall-cmd –zone=public –add-service=https –permanent## ファイアーウォールを再起動
firewall-cmd –reload## Pythonのために必要なパッケージ
AWSの無料期間が終了するのでEC2からlambdaに移行した
## EC2の無料期間が終了してしまう(まずい)
AWSのEC2を使って、アニメの配信通知をつぶやく[Twitterボット]()を動かしているのですが、私のアカウントのAWS無料期間が2022年12月で終わってしまうため、その後は毎月約3000円の料金が発生してしまいます(もったいない!)。
費用圧縮のためにLambdaに移行しようと作業していた所、つまづいた箇所がいくつかありました。
同じようなことで困っている方の参考になればと思います。### lambda(ラムダ)で出来ること
> Lambda は必要に応じて関数を実行し、1 日あたり数個から 1 秒あたり数千個のリクエストまで自動的にスケーリングします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。引用元:[Amazon](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)
## 1) フォルダごと圧縮しても動かない
lambdaでは、プログラムを「lambda_funct
ABC278をPythonとC++で
# 0 はじめに
## 0-1 記事について
AtCoder Beginner Contest 278の解説です。
実装はPythonとC++で書きます。
公式解説と違いがあるかも知れませんがご了承。
ミス等発見されましたらコメント欄にお願いします。# 1 ABC278 解説
## 1-1 個人的な感想
苦手な回です。
Diffは、A,Bが灰前半、Cが灰後半、Dが茶前半、Eが緑中間、Fが水後半と言った感じです。
F解けませんでした。かなしい## 1-2 A問題 Shift
### 問題
長さ$N$の整数列$A$があります。
次の操作を丁度$K$回行います。
>・$A$の先頭の要素を取り除き、$A$の末尾に$0$を追加する。操作の後の$A$の要素を全て出力して下さい。
#### 制約
・$1 \leq N \leq 100$
・$1 \leq K \leq 100$
・$1 \leq A_i \leq 100$### 解説
問題の指示通りに愚直にシミュレーションをしてもよいです。
$A$を配列として受け取り、$K$回「$A_0$を削除して$0$を末尾に追加する」操
[PySimpleGUI] ボタンが押されるたびにInputボックスを追加していく
# 概要
何かしらボタンが押されたときにInputボックスが追加されるようなインターフェイスが欲しかったが、
ネット上に情報がなかったので備忘録としてあげさせていただく
(下画像はヘタクソなイメージ図)
例えば先にInputボックスを10個用意しておいて非表示にしておく → ボタンが押されるたびに非表示を解除
みたいなコードも可だが、やっぱり上限値は設定したくないのでがんばった# 実行環境
・Windows10
・Python 3.11.0
・PySimpleGUI 4.60.4# サンプルコード
~~~python:Add_Input.py
import PySimpleGUI as sg
import sysnum = 1 #Inputボックスの数
g_value = {0 :””} #In
テキストを形態素解析して品詞ごとに色付けする
# はじめに
– テキストを形態素解析してこんな感じで品詞ごとに色付けしたい
英文
![visualize_pos_en.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902281/ae12f5ff-c6b1-dd70-6734-e30e8846b315.png)
和文
![visualize_pos_jp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2902281/70c52916-70d0-9e05-891e-81c62c457769.png)– 英語はnltk, 日本語はjanomeを使って形態素解析する
# 準備
使用するライブラリをインストールし、importします。
“`python
!pip install spacy
!pip install janome # for JP
!pip install nltk # for EN
“`“`python
import pandas as p
torchvision.modelsのpretrainedが非推奨になっていた
## まずは修正
有名どころのモデルの実装と学習済みの重みを1行で取得できる`torchvision.models`モジュールは大変便利で、特に転移学習の際に重宝します。
https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html
上記チュートリアルではバックボーンネットワークとしてResNet18を使用しています。
“`python
from torchvision import models
model_ft = models.resnet18(pretrained=True)
“`しかし、torchvisionのバージョンが0.13以降の場合、以下のような警告が出るようになりました。
“`
/usr/local/lib/python3.7/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for ‘weights’ a
docker-composeで建てたコンテナにアタッチしてリモートデバッグする方法
## 実現したこと
クリックで、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2672529/372e5c9d-2482-814a-32ab-18452f0b3c6a.png)
フロントエンド、バックエンド、DBのコンテナが起動。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2672529/fce88bae-8896-f32a-553f-ad57e1046a30.png)
ブラウザからエンドポイントへリクエストを送り、ブレークポイントを置いたコードで停止して変数などを確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2672529/0ad98acb-0432-275d-83a3-3ff20fc04dec.png)
## デバッグ環境構築前の構成
以下のようにフロントエンド、バッ
【初心者】Kaggleのデータセットを元に、脳梗塞の発症を的中させるモデルを構築してみる
# 目次
1. はじめに
1. 実行環境
1. 利用データ詳細
1. 分析
1. 結果の解釈
1. さいごに# 内容
## 1. はじめに
2022年10月より学習を始めたオンライン学習サービス「Aidemy」の「データ分析講座」における学習の集大成として、自身がこれまでのキャリアで長く関わってきた「ヘルスケア」の分野に焦点を当て、一連のモデル構築、学習、評価の流れを実践した。## 2. 実行環境
PC:MacBook Air(M1)
環境:google colaboratory
Python ver : 3.7.0## 3. 利用データ詳細
https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset世界保健機関(WHO)によると、脳卒中は世界第2位の死因であり、総死亡者数の約11%を占めていると明らかになっている。
上記データセットの提供は、性別、年齢、高血圧などの合併疾患、喫煙状況などの特徴量に基づいて、患者が脳卒中になる可能性があるかどうかを予測することを、目的とされている。
STEM simulation using abtem
## STEM simulation by abtem
TEMのシミュレーションができたら、次はSTEMのシミュレーションをしたくなるのが人情だろう。
STEMのシミュレーションもabtemを使えば簡単だ。大まか流れは以下の通り。
1. サンプル構造の入力もしくは作成
1. ポテンシャルの計算
1. プローブの形成
1. 検出器の設定
2. スキャン-プローブ位置の設定と散乱電子の検出### サンプル作成
TEMシミュレーション時と同様に、サンプルはcifファイルを用意して、aseライブラリを使って拡張すればいいだろう。
abtemはマルチスライスを使ってシミュレーションするので、サンプルが電子線方向に厚いと時間がかかってしまう。
まずは、薄いサンプルを作成しあたりをつけてから実際のTEMサンプル程度の厚さのものを計算したほうがいいだろう。
“`python
from abtem.visualize import show_atoms
from ase.io import read
STO = read(‘c:/temp/STO.cif’)from ase.build
欠損値の数と目的変数の関係を可視化する。
行毎に欠損値の数がいくつあるか調べて、
それに応じて、目的変数がどのように異なっているか可視化する方法についてメモ。
参考:[TPS September 2021 EDA(Kaggle)](https://www.kaggle.com/code/dwin183287/tps-september-2021-eda#5.2-Target-&-missing-value)# 使用コード
“`Python
features = [feature for feature in train_df.columns if feature not in [‘id’, ‘claim’]]
train_df[‘no_missing’] = train_df[features].isna().sum(axis=1)
test_df[‘no_missing’] = test_df[features].isna().sum(axis=1)missing_target = pd.DataFrame(train_df.groupby(‘no_missing’)[‘claim’].agg(‘mean’)).
AtCoder Beginner Contest 278 A問題とB問題をPythonで解いてみました
ABC278(AtCoder Beginners Contest 278)
A問題とB問題をPythonで解いてみました。
– コードは雑めです。ゆるしてー
– 競技プログラミングの勉強一切したこと無いので、テクニックは知らないよ。ごめんねー## A問題
[提出コード](https://atcoder.jp/contests/abc278/submissions/36621193)
“`python
n, k = map(int,input().split())
a = list(map(int,input().split()))
k = min(n,k)
print(” “.join(str(n) for n in a[k:]+[0]*k))
“`## B問題
[提出コード](https://atcoder.jp/contests/abc278/submissions/36661116)
“`python
h, m = map(int,input().split())def misread(h,m):
b = h%10
h2 = (h-b) + (
PythonでCloudStorageにあるCSVファイルをDataFrameで読み込む
## 何をするのか
GCPのCloudStorageにあるcsvファイルをPythonプログラムから読み込み,pandasのDataFrameに格納します.
## 前提条件
* CloudStorageにcsvデータが格納されている
* [認証(サービスアカウント)の設定が完了している](https://cloud.google.com/docs/authentication/getting-started)
* 必要なPythonライブラリがインストールされている### CloudStorageに格納しているcsvファイル
今回は,愛知県・岐阜県・三重県の人口データが入っているcsvファイルを,サンプルとしてCloud Storageに格納しています.
“`
id,prefecture,population
1,Aichi,7497521
2,Gifu,1945350
3,Mie,1759711
“`### 必要なライブラリをインストール
`requirements.txt` を用意して,以下のライブラリをインストールします.
“`requirements
React+Socket.ioの画面からCelery経由でPythonプログラムを呼び出すやつ
探しても見つからなかったので自分で書いた。
https://github.com/cress-cc/react-socketio-celery-example
# 起動方法
## Reactクライアント
“`powershell:
cd client
npm install
npm start
“`## Socket.ioサーバー
“`powershell:
cd server
npm install
node index.js
“`## Pythonプログラム
Windows環境だと `-P solo` を付けないと動かないので注意。あと、CeleryはWindowsを正式にはサポートしていないので、あくまでもテスト用とすること。
“`powershell:
cd worker
pip install -r requirements.txt
celery -A tasks worker -P solo
“`# どこが素晴らしいのか
Node.jsのサーバーからPythonプログラムを非同期で呼ぶようにすることで、Flask-SocketIOでゴ
C# から Python を呼ぶ Pythonnet の使い方
# はじめに
機械学習や最適化、数値計算はPythonのライブラリがC#に対して非常に充実しているので、C#で簡単にできないことが多いしラッパーやC#むけに書き換えるのも時間がかかる。
そういった場合に役に立つライブラリ [Pythonnet](https://github.com/pythonnet/pythonnet) について紹介します。このライブラリは、C#からPythonの関数を呼び出すことが出来る非常に便利なライブラリで.NET Foundationからもサポートを受けて開発されています。
PythonからC#を呼び出す機能も提供されていてそちらの方が記事が多いですが、C#からPythonを呼び出す記事はあまりなかったので備忘録的に作成しました。# 型について
C#の型のままではPythonの関数に値を渡せないので、Python用の方に変換する必要があります。
基本的にはPyHoge型が存在してそれに変換します。## 文字列
“`cs
string str = “Foo”;
var pyStr = new PyString(str);
“`## 整