- 1. 【Python】Crank-Nicholson法を用いた1次元拡散方程式の数値計算
- 2. FastAPI シンプル チャット – Websocket
- 3. python-ternaryで三角図(ヒートマップ)を描いてみた
- 4. PyQt5のチュートリアル ➁ ツールやモジュールのまとめ
- 5. WebTransportでも4K配信がしたい! 〜序章 : まずはストリーム編〜
- 6. 【Python3】0から作るPython初心者プログラミング【04】-あっち向いてほいプログラム-
- 7. Python初心者がノンプロ研でPython学んでみた vol.3
- 8. ねぇ。Binder Parameterって知ってる?
- 9. Serverless FrameworkでデプロイしたLambdaでスクレイピングする。
- 10. Python でテキストデータの会話文を1行に成型する
- 11. 平仮名カタカナ 変換
- 12. FARM_FINGERPRINTをPythonで再現する
- 13. 【Unity】超高解像度映像「KNOT ISLAND 2155」をつくりました
- 14. 量子情報理論の基本:Lattice Surgery
- 15. mysqlclientインストール時のエラー
- 16. pydantic で利用可能な型を追加する
- 17. MAGeCKをMacにインストールしたときのメモ
- 18. 自作Cコンパイラ neo-c2 version 2.0.1リリースです。termuxでvinクローンがコンパイルできなかったので修正してます
- 19. ダブルクロスバリデーション(sklearn)
- 20. データ画像の水増しコード(colab使用)
【Python】Crank-Nicholson法を用いた1次元拡散方程式の数値計算
##はじめに
今回は、非定常1次元拡散方程式を時間陰解法の一種であるCrank-Nicholson法を用いて数値計算していこうと思う。
Python3でのシミュレーションを行っている。##問題
厚さを無視できる長さ1.0mmの薄い板を考える。初め、板は21℃で一定温度であった。片側の端を断熱し、もう一方の端を30℃に加熱した時の温度分布変化を描画する。##離散化方法
非定常1次元拡散方程式は、
$$\frac{\partial{q}}{\partial{t}}=\alpha\frac{\partial^2{q}}{\partial{x^2}}\tag{1}$$
流体解析に対する時間陰解法として有名なBeam-Warming法は、“`math
\frac{q^{n+1}_{j}-q^{n}_{j}}{\Delta{t}}=\alpha\Bigl\{(1-\lambda)\frac{q^{n+1}_{j+1}-2q^{n+1}_{j}+q^{n+1}_{j-1}}{2\Delta{x}}-\lambda\frac{q^{n}_{j+1}-2q^{n}_{j}+q^{n
FastAPI シンプル チャット – Websocket
以下の過去記事でも述べていますが、FastAPIは**Starlette**を基盤として構築されており、WebSocketのサポートも継承しています。
[Starletteで作る Simple Web Server – Qiita](https://qiita.com/sand/items/dd622ce4f9249399974c)
[WebSocket – FastAPI公式サイト](https://fastapi.tiangolo.com/advanced/websockets/)今回は公式サイトにあるチャットプログラムを少し修正し、特にクライアントは簡単なVueプログラムに置き替えています。
# 1. クライアント – Vue.js
過去記事の[FastAPI OAuth2 クライアント – Qiita](https://qiita.com/sand/items/990afc5d49a37b026acc)と同じディレクトリ構成で、FastAPIのディレクトリのサブディレクトリstaticにindex.htmlとindex.jsを置きます。
index.htmlは2つの
python-ternaryで三角図(ヒートマップ)を描いてみた
三角図(三角グラフ)は、
$ x + y + z = 1 , x ≧ 0, y ≧ 0, z ≧ 0 $
を満たすような $ x, y , z $ を2次元の三角形で表す図である。
三角図の例や見方については一旦おいておき、python-ternary を使って、関数を用いた三角図のヒートマップを実装してみようと思う。
“`
!pip install python-ternary
“`ここで、今回取り上げるディリクレ分布についての紹介を。
ディリクレ分布は、各次元が正であり総和が1となるような $ K $ 次元ベクトルが従う分布である。
数式は以下。
$$
Dir(\textbf{π}|\textbf{α}) = C_D(\textbf{α}) \prod_{k=1}^{K} {\pi_k}^{\alpha_k – 1}
$$ここで、$ \bf{α} $ は $ K $ 次元ベクトルのパラメータであり、各要素 $ \alpha_k $ は正の実数値である。
定数項は、
$$
C_D(\textbf{α}) = \frac{Γ(\sum_{k=1}^{K}
PyQt5のチュートリアル ➁ ツールやモジュールのまとめ
# はじめに
前回はPyQt5のHelloWorldをしました。
https://qiita.com/hoshianaaa/items/21b17088e8e6dc3481c3
今回はPyQtのモジュールやツールなどのまとめです
内容は
– 1.モジュール集
– 2.ツール集
– 3.widget集の3点です。
# 1.モジュール集
PyQtでよく使われるモジュール集
1.`QtCore`:他のモジュールから使われる,non-GUIでコアなクラス集
2.`QtGui`:グラフィックユーザーインターフェース
3.`QtMultimedia`:lowレベルのマルチメディア様クラス集
4.`QtNetwork`:ネットワークプログラムのためのクラス集
5.`QtOpenGL`:OpenGLをつかうためのクラス集
6.`QtScript`:Qt Scriptsを評価するためのクラス集
7.`QtSql`:SQLを使ってデータベースとインテグレーションするためのクラス集
8.`QtSvg`:SVGファイルを表示するためのクラス集
9.`QtWebKit`:HTMLをレン
WebTransportでも4K配信がしたい! 〜序章 : まずはストリーム編〜
# ストリームだと4K配信には、、、もう一工夫必要!?
今を生きている皆さんこんにちは。
そろそろアドベントカレンダーの季節ですが、そんなことは気にせずガンガン書いていきます!さて、WebRTCで出来なくてWebTransportに期待されていることの一つに4K配信などの高画質配信があるのではないでしょうか?
WebRTCではブラウザの制限により1.5Mbps – 5Mbpsという制限があるため、フルHDでさえ”もやっと”する画質でした。## データグラムは次回試してみます
WebTransport(が使っているQUIC)にはストリームとデータグラムがあります。
リアルタイム性を追求するならデータグラムを使うのが良いのですが、
~~~正直面倒なのとマスタリングTCP/IP RTP編を半分しか読めていないのと~~~すでに去年[QuicTransportでの実装記事](https://qiita.com/yuki_uchida/items/b177ec07ac0379950e58)を書かれている方がいらっしゃるので、ストリームでやってみました。
まあ、道のりは険しそうです。#
【Python3】0から作るPython初心者プログラミング【04】-あっち向いてほいプログラム-
#【ご挨拶】こんにちは! ぬかさんエンジニアリングです。(4回目‼)
今回は、大人数であっち向いてほいトーナメントバトルが出来るプログラムをつくりたいと思います!
基本的には土台として前回の[大人数じゃんけんプログラム](https://qiita.com/Nuka-san-Engineering/items/f94c441c9750656b7f70#%E7%AC%AC03%E5%9B%9E–%E5%A4%A7%E4%BA%BA%E6%95%B0%E3%81%A7%E3%81%98%E3%82%83%E3%82%93%E3%81%91%E3%82%93%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0-)のコードを転用して作ることになります。作り方だけ見たいという方は前回の記事も一緒に見てもらった方が理解度は高まるかと思います。己の力のみで0からお題に挑戦したいという方ものために「機能要件」を用意していますので、それだけ見て作ってみるのもいいかもしれません。
今回のプログラムからいよいよゲームらしくなっていきます。それに伴って初心者の中には少し
Python初心者がノンプロ研でPython学んでみた vol.3
# はじめに
こんにちは、な~です。ノンプロ研でPythonを学び始めました。その学びについての第3段です。# 今回学ぶこと
– リスト
– タプル
– 辞書# リスト
リストはインデックスで管理するデータの集合です。
リストは角括弧[]内に、リストの要素をカンマで区切って並べます。
また、要素を呼び出すときは、リスト名[インデックス]で呼び出すことができます。
![20211124初心者講座Pythonコース-03 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1208544/4533ca63-1b21-d34e-7ac4-79906e303865.png)
また、リストの部分選択をスライスといいます。
リスト名[開始位置,終了位置、増分]でリストの部分選択ができます。![20211124初心者講座Pythonコース-03 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1208544/b7d
ねぇ。Binder Parameterって知ってる?
# はじめに
突然ですが、イジングモデルのシミュレーションのデバッグってしたことありますか?このデバッグ方法として一般にBinder Parameterが用いられます(?)「臨界温度を見ておけばいいんだろ?」と思われたかもしれません。たしかに、無限系(無限個の粒子を想定)のイジングモデルでは、臨界温度パラメータ(特徴的な温度・沸点とか融点みたいなやつ)が解析解として一般に知られています。一方、シミュレーションは有限系であり、臨界温度は知られていません。十分スケールを大きくすればいいという話もありますが、それって正しいですか?かっこ悪くないですか?# 対象読者
解析解が得られていない問題に対して、シミュレーションを用いてそれを求めるにはどうしたら良いでしょうか?十分スケールを大きくしますか?それとも知恵を振り絞りますか?この記事は、後者の人に向けた内容です。チェッカーボードアルゴリズムとか効率的なシミュレーションの話ではないです。# モチベーション
もしも系のスケールに依存しないパラメータが分かればと思いませんでしたか?無限系の解析解と有限系のシミュレーションでスケール非依
Serverless FrameworkでデプロイしたLambdaでスクレイピングする。
## 目的
こちらの記事は、以下の記事の第1, 2回目となります。https://qiita.com/ShiroUz/items/56e230d286d09d275d32
Lambdaを使用して、スクレイピングします。
また、Lambda Layerを使用して、Pythonで使用するパッケージを読み込ませます。インポートするパッケージをLambda Layerから読み込んでハンドラーと切り分けることで、デプロイするLambdaの容量を減らし、大規模なLambda関数を作成可能にするとともに、デプロイするまでの時間を短縮させます。## 環境
“`
$ sw_vers
ProductName: macOS
ProductVersion: 11.6
BuildVersion: 20G165$ sls -v
Framework Core: 2.65.0
Plugin: 5.5.1
SDK: 4.3.0
Components: 3.17.2$ npm -v
8.1.0$ docker -v
Docker version 20.10.8, build 3967
Python でテキストデータの会話文を1行に成型する
テキストデータを自然言語処理する際に、会話文を抽出したかったが、テキストデータにおいて、1行に’「」’の対が複数あったり、逆に’「」’の対が複数行にまたがって存在していたりしており、成型がめんどうであった。
「」の対が1要素に収まっているリストを返す関数をメモ代わりに記載する。“`python
# テキストファイルのパス
path = ‘hogehoge.txt’# 「」の対が1要素に収まっているリストを返す関数
def preprocessing(path):
text = []
with open(path, mode=’r’, encoding=’utf-8′) as f:
for line in f.readlines():
# text の list の要素に’「’, ‘」’がそれぞれ1つ以下になるよう加工する
line = line.replace(‘「’,’\n「’)
line = line.replace(‘」’,’」\n’)
i
平仮名<==>カタカナ 変換
応用
“`Python
chr(ord(“き”) + (ord(“ア”) – ord(“あ”))) # ‘キ’
chr(ord(“バ”) – (ord(“ア”) – ord(“あ”))) # ‘ば’
“`
FARM_FINGERPRINTをPythonで再現する
# tl; dr
“`sh
pip install pyfarmhash
“`で [PyFarmHash](https://github.com/veelion/python-farmhash) をインストールしたうえで、
“`python
import struct
import farmhashdef farm_fingerprint(value: str) -> int:
hash_unsigned = farmhash.fingerprint64(value)
hash_binary = struct.pack(“Q”, hash_unsigned)
return struct.unpack(“q”, hash_binary)[0]
“`# はじめに:FARM_FINGERPRINTとは
BigQueryやCloud Spannerでは、引数の値からハッシュ値を作る `FARM_FINGERPRINT` という関数が用意されている。
SHA256やSHA512といったおなじみのハッシュ関数も用意されているものの、 `FARM_F
【Unity】超高解像度映像「KNOT ISLAND 2155」をつくりました
# はじめに
長崎にある軍艦島デジタルミュージアムの巨大プロジェクタで上映する
映像作品「KNOT ISLAND 2155」をUnityで製作しました。
カラコレ・編集以外は全部一人でやりまして、製作期間は基本日曜に作業して3ヶ月くらい。
編集や音楽のおかげもあって、かなり良い映像になりました。軍艦島デジタルミュージアムで上映される「KNOT ISLAND 2155」をつくりました。点群データをUnityのVFX Graphで映像にしました。 pic.twitter.com/EFtmeuKgDP
— ekunish (@ekunish) November 29, 2021
<
量子情報理論の基本:Lattice Surgery
$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$## はじめに
[前回の記事](https://qiita.com/SamN/items/07c7bf9fa922793c7413)で量子誤り訂正符号について一区切り付いたと言いましたが、やはりこれはどうしても外せません。というわけで、今回は「Lattice Surgery」を取り上げます。Braidingは格子状に敷き詰められた量子ビット集団に欠陥対を形成しそれを論理量子ビットと見立てて、欠陥を動き回らせることで論理演算を実現するのでした。物理量子ビットに対する演算はすべて局所的に行われるので(つまり、遠距離にある物理量子ビット同士の演算が一切ないので)、ハードウェア的に無理がない実現方式ではあるのですが[^1]、いかんせん用意すべき物理量子ビ
mysqlclientインストール時のエラー
#EC2とMySQLを接続させるときに出会ったエラー
“`pip install mysqlclient“`
上記をしているのに,runserverすると
“`django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?“`
と怒られる。
##解決策
“`sudo yum install python3-devel“`
してから
“`pip install mysqlclient“`
するとうまくいった。
pydantic で利用可能な型を追加する
## はじめに
pydantic という便利な validation ライブラリが python にはありますが、こちらでは validation 可能な型が限られています。それを他の型を拡張しないといけない時があったので、メモがてらまとめました。
## どうやるのか
* https://pydantic-docs.helpmanual.io/usage/types/#custom-data-types
このあたりに詳しく書かれていますが、重要なのは `__get_validators__` と、そこで yield される関数たちです。pydantic で validation を行う時には、まずは、 `__get_validators__` が呼ばれます。これは、ジェネレータになっていて、記された実際の validation 関数を返し、一つ一つ実行していきます。
## 実際にやってみる。
上記の例を題材に、日本の郵便番号の validator を作ってみます。なお、実際に動かした環境は以下の通りです。
* Python 3.9.7
* pydantic 1.8.2
MAGeCKをMacにインストールしたときのメモ
CRISPR screenの解析パッケージであるMAGeCKをinstallしようと思ったが,以下のwikiの手順通りに進めてもうまくいかなかった
https://sourceforge.net/p/mageck/wiki/demo/#the-first-tutorial-starting-from-read-count-tables
具体的にはzip fileをdownloadしたあとにsetup.pyを実行しようと思ったが,エラーになるというものだった.
解決策
作成者のgithubからcloneを作ったらうまくいったhttps://github.com/davidliwei/mageck
なんで初めうまくいかなかったのかよくわかってない
自作Cコンパイラ neo-c2 version 2.0.1リリースです。termuxでvinクローンがコンパイルできなかったので修正してます
タイトル通りです。
あとはオリジナルヒープシステムのコードはコンパイルエラーが出るようにしました。
互換性なくなりましたね。すみません。あとはAlpine LinuxとiSHですかね。動かしたいの。iSHで動けばAlpine Linuxも動きそうですけど。
ちょっとiSHでコンパイルかけてみますhttps://github.com/ab25cq/neo-c2
ダブルクロスバリデーション(sklearn)
#### クロスバリデーションによるハイパーパラメータ最適化&評価
“`
from sklearn.datasets import load_diabetes
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection impor KFoldX, y = load_diabetes(return_X_y=True)
estimator = RandomForestRegressor()
param_grid = {‘n_estimators’:[10,50,100], ‘max_depth’:[3,5,10]}
cv = KFold(5, shuffle=True)
gsv = GridSearchCV(estimator, param_grid, cv=cv)
gsv.fit(X,y)
best_estimator = gsv.best_estimator_
score = cr
データ画像の水増しコード(colab使用)
#はじめに
同じ画像を回転させたりして違う画像へ変更するコード
が必要となったため、作成しました。
(注意:Google colab用に作成したので変更箇所は個人で
お願いします。)#コード
https://github.com/ryotaro137/data.git#補足