- 1. Python3最新版対応 Tkinterのまとめ
- 2. PythonでiCalendar形式のファイルを書き出す
- 3. Python>Flask:YOLOV5を活用した物体検出アプリの作成 (1)Google Colaboratoryの利用
- 4. xfceデスクトップ環境でpywalにハマった話
- 5. B-spline registration 〜非線形画像登録への入門〜
- 6. 【Python初学者】画像処理クラス分類の精度・正解率(accuracy)を向上するには。【FashionMNIST】
- 7. エンジニアとして副業をしてわかったこと
- 8. Amazon Linux 2 で Python3 の環境構築
- 9. Tensorflowでnumpyの挙動をさせる
- 10. FastAPI と Tortoise ORM と Pydantic について
- 11. CentOS7の初期状態から nginx で php python perl ruby を動かすまで
- 12. CoolBoxを使ったHi-CやChIP-seqなどゲノムトラックのプロット
- 13. 自作Cコンパイラ neo-c2 version 1.2.6リリースです
- 14. 【Python】ディレクトリ・パス取得関連(os, pathlib, glob)
- 15. 文系卒が数学オリンピックをPythonで解く(2020年予選編)
- 16. 文字列処理を効率化する自作関数3選 [python]
- 17. Pandasのread_fwfで固定長のデータを変換(震度データ)
- 18. 水文水質データベースの1h降水量データをスクレイピングする。
- 19. DynamoDBをモック化する
- 20. 株価シュミレーターの計算結果確認ツール作成
Python3最新版対応 Tkinterのまとめ
#こんにちは
最近PythonでUIを作ってみようと思ったのですが、画面上にウィンドウなどを表示させるためのモジュールである”Tkinter”についてのネット情報が動作しないものが(バージョンやハードの関係で)一部あったりしたので、
私なりに最新版に対応している情報をまあまあ詳しくまとめてみました。
あと、私がつまずいた注意ポイントなども載せているので、参考になると幸いです。#動作環境
2021年11月3日現在Mac Book Pro M1
Mac OS Monterey 12.0.1
Visual Studio Code 1.61.2 (Universal)
Python 3.10.0#Tkinterの基本文
“`test.py
import sys
import tkinterroot = tkinter.Tk()
#他のコードはここに記載
root.mainloop()
“`実行するとこんな感じ。小さなTkというウィンドウが表示されます。
![スクリーンショット 2021-10-31 21.17.04.png](https://qiita-image
PythonでiCalendar形式のファイルを書き出す
iCalendarはカレンダーアプリなどで使われるスケジュールデータの標準フォーマット。
iCalendarファイルを使ってGoogleカレンダーやOutlookなどのアプリにスケジュールをインポートすることもできる。iCalendarファイルは単純なテキストファイルなので、その気になれば一行一行書き出す処理を書いて作ることもできそう。
https://developers.worksmobile.com/jp/document/1007011?lang=ja
PythonでiCalendarファイルを読み書きできるライブラリがあるのでこれを使ってみる。
https://pypi.org/project/ics/
[クイックスタート](https://icspy.readthedocs.io/en/stable/)を見ながら試してみる。
まずはファイルの書き出しから。
“`python:ics_write.py
from ics import Calendar, Event
import arrow# カレンダーの生成
cal = Calendar()
cal.c
Python>Flask:YOLOV5を活用した物体検出アプリの作成 (1)Google Colaboratoryの利用
# 1.概要
FlaskとYOLOV5を使って、物体検出を行うwebアプリを作成した。
(1)「ファイル選択」でjpgまたはmp4ファイルを選択して「送信」)
(2) 物探検出結果をグラフとgifで出力![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613560/ea242b60-82cb-38b8-d4a4-93aefd21c130.png)
以下3つの環境での立ち上げを紹介する。
* **Google Colaboratory環境でのWebアプリの立ち上げ【今回紹介】**
* Local環境でのwebアプリの立ち上げ(作成中)
* herokuへのWebアプリのデプロイ(作成中)# 2.Google Colaboratory環境でのWebアプリの立ち上げ
## 2.1.ファイルの準備
1. 以下URLにアクセス
https://github.com/kkoba619/
xfceデスクトップ環境でpywalにハマった話
# はじめに
pywalを自分のxfceデスクトップ環境で使おうと思った時に嵌ったので備忘録として残しておきます。pywalって?という人は次の記事をご覧ください。
* [自分の好きなデスクトップ画像を元に、自動で良い感じに合うターミナル/Vim/VSCodeのテーマを1コマンドで作る](https://qiita.com/ulwlu/items/4ec90c90c42a9a9249d3)
* [pywalを使ってシェルログイン時にpcの壁紙をランダムに変更し、壁紙からターミナルのカラースキーマを自動生成する](https://zenn.dev/lilpacy/articles/5b6f24190ca78d9bf19a)私もこの記事を見て実装することにしました!
どちらの記事も画像が本当に最高です!!!!設定についてもとても参考になるので気になる方は是非見てみてください!(私も大分お世話に鳴りました。ありがとうございます!)
# 環境
* OS: Linux Mint 20.2 x86_64
* DE: Xfce
* shell: zsh
* python3: pyt
B-spline registration 〜非線形画像登録への入門〜
# はじめに
当記事では,PythonによるB-spline registrationの使用を目的とします.画像registrationとは,二つの画像間の適切な変形場を求める最適化計算です.
# Elastix
B-spline registrationを扱うためのソフトウェアとしてElastix[^1]が広く知られています.コードはC++で書かれていますが,wrapされていてPythonライブラリとして取得可能であり,今回はそちらを使用します.ライブラリは以下のコマンドでインストールされます.“`
pip install itk-elastix
“`
詳細は以下のリンクをご参照ください.
https://github.com/InsightSoftwareConsortium/ITKElastix
# Data
githubに置かれている2次元CT脳画像を用います.3次元画像を扱う場合も同様の流れになります.“`
fixed_image = itk.imread(‘data/CT_2D_head_fixed.mha’, itk.F)
moving_image = it
【Python初学者】画像処理クラス分類の精度・正解率(accuracy)を向上するには。【FashionMNIST】
##はじめに
この記事の対象者は「python初学者」「機械学習初学者」です。
つまり私です。##今回の例
今回は「**FashionMNIST**」のデータセットを用いて学習し
テストデータに対するクラス分類の**正解率 90% 以上**を目指します。以下のように準備しました。
①訓練データ
“`
torchvision.datasets.FashionMNIST(
root=”datasets”, train=True, transform=transform, download=True
)
“`
②テストデータ“`
torchvision.datasets.FashionMNIST(
root=”datasets”, train=False, transform=transform, download=True
)
“`
テストデータは`train=False`としています。##画像処理のネットワーク構築(改善前)
“`
class Net(pl.LightningModule):def __init__(self)
エンジニアとして副業をしてわかったこと
エンジニアとして副業をしてわかったことを端的にお話ししたいと思います。
ますは私の自己紹介から
私は、大学時代に初めてプログラミングに触れました。最初は、ドベの一人であり全く自分には向いていないと思っていましたが、どこかでそのかっこよさや奥深さ、可能性を見いだしていました。
転機となったのは、日本の大学代表で(そもそも目的は全然違いましたが)シリコンバレーに1週間ほど行ったことでITの最先端に触れ自分のなかで何かが変わりました。日本に帰国し再度独学でHTML・CSSを勉強し始めサイトを作れるように(ちゃっちいものでしたが)なってうきうきになりました。大学でもUnityやグラフィックデザイン系のプログラミング講義、サイバーセキュリティプログラミングなどを受講するようになりました。第二の転機は、大学で行っていた紛争の研究手法の妥当性というかもっと具体的な研究をしたいと思い、実際にコンピューターでシミュレーションできれば面白いのではと思い、プログラミングの勉強にさらに力を入れるようになりました。その時期に、さらに実践面でも経験を積みたいと思いSEをやり始めました。そこから、「自分はITのプ
Amazon Linux 2 で Python3 の環境構築
#はじめに
EC2でPythonの動作環境を作るための手順です。#環境構築
“`bash:Pythonインストール前のもろもろ
#!/bin/bash
sudo yum update -y
sudo cp /usr/share/zoneinfo/Japan /etc/localtime
“`—
(python3はインストール済みなら空振り)“`bash:python3のインストール
sudo yum install python3 -y
“`“`bash:requestsのインストール
sudo pip3 install requests
“`“`bash:boto3のインストール
sudo pip3 install boto3
“`“`bash:pandasのインストール
sudo pip3 install pandas pandas-datareader
“`#おわりに
何かあれば追加していきます。“`bash:全部入りインストールスクリプト
#!/bin/bash
sudo yum update -y
sudo cp /u
Tensorflowでnumpyの挙動をさせる
# はじめに
※この記事の内容はTensorflow 2.5以上が対象です。
____
Tensorflowで演算処理をするとき、通常では以下のような書き方はできません:
“`python
import tensorflow as tfx = tf.convert_to_tensor([[1, 2, 3], [4, 5, 6]], dtype=tf.float32)
# こういう計算をしたい
mm = x.max(axis=0).mean()
“`“`shell
AttributeError: ‘tensorflow.python.framework.ops.EagerTensor’ object has no attribute ‘max’
“`だったり、
“`python
# np.chooseやnp.takeの挙動をさせたい(fancy indexingをさせたい)
collect = x[:,[2,0,1]]
“`“`shell
TypeError: Only integers, slices (`:`), ellipsis (`…
FastAPI と Tortoise ORM と Pydantic について
今回は、**FastAPI**でDBを使う方法を紹介します。ここではsqlite3を使用しますが、PostgreSQLやMySQLなども同様に使えるはずです。
FastAPIからDBを使う方法はいくつかありますが、ここでは**Tortoise ORM**というマッパーを使用します。DjangoのORMにインスパイヤーされたとありますが、Djangoよりは使いやすい気がします。しかしFastAPIはその根幹のところで**Pydantic** クラスを採用していて、Tortoise ORMのクラスと重複してしまいますので両者のコンバートなどが必要になり少し面倒です。
FastAPIやPydantic、Tortoise ORMなどの基本的なところは以下の過去記事を参照してください。
【過去記事】
[FastAPIで作るWebアプリ – 基本](https://qiita.com/sand/items/bba0913fe4504c612b3a)
[FastAPIで作るWebアプリ – Body validation](https://qiita.com/sand/items/470b3
CentOS7の初期状態から nginx で php python perl ruby を動かすまで
# はじめに
https://qiita.com/bashaway/items/16c2aba74a8328ed9618と同じことをCentOS7でやっただけ。
作業履歴の目的なので、解説は少なめ。# 作業内容
## 事前作業
SELinuxは無効化にしておく。upstreamとかproxyとかでアクセスさせようとしてPermissionDeniedが出て、ソケットのパーミッションやらなんやら調べてたけど、面倒になってSELinuxを無効化したら動いたので、そうした。
いろいろ検証したり調査したりするときにはやっぱりSELinuxは外さないと時間がかかる。。。## パッケージインストール
各スクリプトと、CGIとして動作させるためのパッケージをインストールします。
“`:いろいろインストール
yum install -y epel-release
yum update -y
yum install -y nginx php php-fpm python3 ruby fcgi spawn-fcgi fcgiwrap perl perl-CGI“`
py
CoolBoxを使ったHi-CやChIP-seqなどゲノムトラックのプロット
Hi-C解析やChIP-seq解析の結果を描画する可視化ライブラリ [CoolBox](https://github.com/GangCaoLab/CoolBox) の紹介と簡単な使い方。
Hi-Cのコンタクトマップを描画するツールはあんまり多くなくて、とくに他の実験で得られたゲノムトラックと同時に描画しようとするとなかなか苦労する。
探索的解析を兼ねてコンタクトマップを可視化するツールとしては [JuiceBox](https://aidenlab.gitbook.io/juicebox) や [HiGlass](https://higlass.io) がある。とくにHiGlassはおすすめで、いろいろな入力ファイルに対応してさまざまなプロットをインタラクティブに生成できる。だけど、自由度が大きいぶん使い方も複雑で細かなカスタマイズが難しい。
もっと手軽にプロットして、さくっと論文に出てくるような図を作りたい。という欲求にかなりいい感じで答えてくれる CoolBox というツールが最近出たので、ここでは簡単な使い方と実際のデータの描画例を紹介する。
CoolBoxはコンタク
自作Cコンパイラ neo-c2 version 1.2.6リリースです
まだ自作のヒープシステムのバグがありました。フィールドへの所有権の移動ができてませんでした。
修正しています。“`c
struct sA {
int*% a;
};void sA_finalize(sA* self)
{
delete self.a;
}int main()
{
int*% a = new int;
*a = 5;sA*% data = new sA;
data.a = a; // 所有権の移動return 0;
}
“`みたいなケースです。この場合、dataがfreeされるタイミングでdata.aがフリーされます。
aはfreeされません。テストコードとしてpythonクローンを実装し始めてます。yapyディレクトリにあるので見てください。
viクローンはvinディレクトリにあります。
vinは自分のコードを書くのに使い始めてます。ちょっとvimよりは使いづらいですが、全く使えないわけでも
なくて、あと少し改良すればvimと遜色がない感じにはなると思います。
そのちょっとの改良がめん
【Python】ディレクトリ・パス取得関連(os, pathlib, glob)
## 概要
Pythonのパスやディレクトリを取得する方法よく忘れてしまうので、
備忘録として残しておきます。
今回は**os**や**pathlib**、**glob**モジュールあたりの話です。## osモジュール
__ file __はPythonファイル(今回でいうpath.py)の絶対パスです。### 絶対パスを取得(os.path.abspath())
“`python:path.py
path = os.path.abspath(__file__)
print(“Absolute Path: {}”.format(path))
# Absolute Path: /Users/…/path.py
“`### 相対パスを取得(os.path.relpath())
第2引数は対象としたい相対基準のパス。“`python:path.py
relPath = os.path.relpath(__file__, “./”)
print(“Relative Path: {}”.format(relPath))
# Relative Path: path.py
文系卒が数学オリンピックをPythonで解く(2020年予選編)
#これまでのあらすじ
– 文系卒の私。でも数学になじみたい。
– ふむふむ、数学オリンピックというのがあるらしい。やってみますか。
– 紙とペンを使ってマジメに解く文系卒。えらい、えらいぞ!
– 5分後にふと衝撃走る。「これPythonでやったほうが早くない?」
– そんな、いつか 誰かに 本気で怒られそうな気づきを 実行したのであった──。#ルール
– 数学オリンピックの問題をPythonで解く。
– ライブラリは可能な限り使わない。例外的にitertoolsは使う。
– 図形の問題は挑戦しないかも。許してね。
– 式変形すれば解けるようなものも面白味がないので対象外。#引用元
問題はこちらから引用しております。[第30回(2020年)JMO予選の問題 – 数学オリンピック](https://www.imojp.org/archive/mo2020/jmo2020/problems/jmo30yq.html)
https://www.imojp.org/archive/mo2020/jmo2020/problems/jmo30yq.html
#Q1
##問題
>千の
文字列処理を効率化する自作関数3選 [python]
# はじめに
文字列処理に関して、個人的に愛用している3種類の自作関数を紹介します。
正規表現を伴わずとも使用可能な代物ではありますが、正規表現を用いれば更に輝きます。後半では簡単な使用例も紹介していますので、ぜひお手元の環境でお試しいただければと思います。
## その1:Seriesに対する存在判定
“`python
def extract_mod(series, ptn, axis=0):
if axis == 0:
judge = series.astype(str).str.extract(r”(” + ptn + “)”, expand=False).notna()
else:
judge = series.astype(str).str.extract(r”(” + ptn + “)”, expand=False).isna()
return judge
“`
ptnに単なる文字列を渡した場合、str.contains()と同様になります。
デフォルト(axis=0)では”該当する”場合を、axis=1であ
Pandasのread_fwfで固定長のデータを変換(震度データ)
# 参考
日本の地震データを加工してわかりやすくしてみた
https://qiita.com/T_programming/items/2dae8f40941ff3581036# read_fwfで固定長のデータを変換
https://pandas.pydata.org/docs/reference/api/pandas.read_fwf.html
+ read_fwfだと全角文字を1文字と認識してしまうためずれてしまう
+ 「震央地名」が全角文字のためずれる
+ 「震央地名」以降を一旦全部取得後に分離する# ダウンロード
“`
!wget https://www.data.jma.go.jp/svd/eqev/data/bulletin/data/shindo/i2019.zip
“`# プログラム
“`python
import pandas as pdwidths = [1, 4, 2, 2, 2, 2, 4, 4, 3, 4, 4, 4, 4, 4, 5, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 28]
na
水文水質データベースの1h降水量データをスクレイピングする。
##はじめに
自身の研究に長期間の連続的な降雨データが必要となったため,水文水質データベースから1時間降水量データをスクレイピングすることにしました。
降水量データを(正攻法的に)取得する方法のひとつは,[気象庁アメダス](https://www.data.jma.go.jp/gmd/risk/obsdl/index.php)のデータを取得することです。
しかし,気象庁アメダスよりデータをダウンロードする際には,データ量に制限がかけられています。
例えば,1時間降水量データは1年強くらいしか一度にダウンロードできません。最近,台風シーズンになるとよく「100年に一度の雨」とかニュースで耳にしますが,この年数(降雨の発生確率)を求めるためには,数十年程度の降水量データが必要です。
気象庁アメダスから例えば40年分の降水量データをダウンロードしようとすると,それはそれはまあ大変な作業になるわけです。###気象庁アメダスからスクレイピングできないか?
気象庁のアメダスから正攻法でダウンロードするのが面倒なら,
「気象庁のアメダスそのもののページからスクレイピングすればいいのでは?」
DynamoDBをモック化する
## 背景
ローカル環境でLambdaからDynamoDBへの処理をテストをしたかったので
motoを使ってDynamoDBをモックした。
忘れないように備忘録を残す## 前提
python がインストール済み
pytest がインストール済み## インストール
“`
pip install moto
“`## 実装
受け取ったIDをKeyとして登録データを返却する関数を実装
“`src/get.py
import boto3
dynamodb = boto3.resource(‘dynamodb’,region_name=’ap-northeast-1′)
table = dynamodb.Table(‘messages’)def get_messages(id):
return table.get_item(Key={‘id’: id})“`
###テストコード* dynamodb_messages()にモック化するDB情報を記述する
* モック化したいテスト関数の先頭に『@mock_dynamodb2』を記述する
* dynamodb
株価シュミレーターの計算結果確認ツール作成
###今回は、前回3部作で紹介させて頂いた、「なんちゃって株価データ」生成ツールGUI版用の、生成データ可視化専用ツールについて簡単に触れさせて頂きます。
##この可視化ツールが出来ること・・・
この可視化ツールは、前回までのデータ生成ツール専用に作られていますので、他のケースへの転用を検討される場合は、その関連部分を書き直して頂く必要があります。下図は、このツールを使ってSingleStore向けに生成された株価データを可視化した例になります。
基本的にはPython界の汎用モジュールを幾つか組み合わせたモノになりますので、改造や他のデータ可視化の際にも柔軟に対応出来るかと思います。![スクリーンショット 2021-11-05 7.52.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/01b0ae3f-1ff7-e0d3-6990-5d49b88864b9.png)
データの可視化・・・・と最近よく耳にされるかと思います。確かに自分で作って言うのも・・の典型的なパターンで