- 1. DataFrameを画像として出力する方法。
- 2. 組み合わせ構造に対するベイズ最適化
- 3. Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較
- 4. FastAPIの基礎(+α Routing)
- 5. [Transformer入門]TensorFlowチュートリアル: Transformer
- 6. AndroidアプリでPythonライブラリを使う 【Chaquopy】
- 7. matplotlibでtickparamsを使ってもticklabelが消えないときの対処法
- 8. pandas DataFrameをjupyter ipywidgetsでGUIランダム生成
- 9. S3から最新ファイルをダウンロードしてスライドショー表示
- 10. PlateauのCityGMLをBlenderで読み込むアドオンを書いた
- 11. 【VSCode・初心者】pythonファイルをショートカットキーで実行
- 12. PySimpleGUIのラジオボタンを保守性良く記述
- 13. Signateコンペ
- 14. 【Python – SQlite エラー】ValueError: parameters are of unsupported type
- 15. PyInstallerを使ってExcelVBA感を消したい
- 16. MigemoをPythonで
- 17. データベースが吹き飛ばされた件
- 18. Pythonで階乗 math.factorial のアルゴリズム
- 19. YouTubeの分析をするコードをPythonで実装してみた~超初心者向け~
- 20. Pythonで「時をかける少女」風のスクリーンセーバーを作る
DataFrameを画像として出力する方法。
## 始めに
こちらの記事をご覧いただきありがとうございます。
表を画像にして発表資料に入れたいなーとか思った時に使えそうな、pandasのDataFrameを画像にして出力してもらう手法を書きます。
自分で後で見返すように作成しますが、ご覧いただいた皆様にも学びがあれば幸いです。## 参考
以下のページの内容をおおよそそのまま書くだけです。詳しく知りたい方はぜひそちらをご覧ください。https://tedukapm.tech/python/tableoutput/
# DataFrameを画像として出力する方法。
早速ですが、その関数のコードが以下です。
“`python:DataFrameを画像にする
# dfは出力したいDataFrame
# wは横幅、hは縦幅
# outputPathは出力先のパスdef TablePlot(df,w,h,outputPath):
fig, ax = plt.subplots(figsize=(w,h))
ax.axis(‘off’)
ax.table(
df.values,
組み合わせ構造に対するベイズ最適化
非自明な関数の最大値、または最小値を求める手法は **Black-Box最適化** と呼ばれます。Black-Box最適化の中でもベイズの枠組みを用いて、関数の最大値、または最小値を求めていく方法を、 **ベイズ最適化(Bayesian Optimization)** と呼びます。
目的関数の符号を逆転させることで最大値を求めることと最小値を求めることは等価になるので、以下の記事では関数の最大値についてのみ議論を行います。
一般的なベイズ最適化は、連続値を持つ関数に用いられ、その関数の最大値を **ランダムサーチ(Random Search)** などと比べ効率的に見つけ出すことができます。
一方で、一般的なベイズ最適化を組み合わせ最適化問題に用いる場合には、探索点が重複してしまうなどの問題が発生してしまいます。
この記事では **Bayesian Optimization of Combinatorial Structures(BOCS)** というアルゴリズムを[原論文](https://arxiv.org/pdf/1806.08838.pdf)を引用する形で紹介します。
Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較
Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較
# Python
https://qiita.com/ny7760/items/d9c247781a790210936d
# Ruby
https://qiita.com/ima1zumi/items/28ef13f5af3d9afdeaf3
# PHP
https://qiita.com/suin/items/3edfb9cb15e26bffba11
# Java
https://qiita.com/motoki1990/items/cee6a4a75c0320b79ec4
# JavaScript
https://qiita.com/weal/items/3b3ddfb8157047119554
# Perl
https://perlzemi.com/blog/201610061475
FastAPIの基礎(+α Routing)
最近人気のPythonWebフレームワーク『**FastAPI**』の基本的な内容について記載してます。
また、Routingの処理を別ファイルへと記載するやり方も載せてます。# インストール
以下のpip installを実行(Terminal等で実行)
“`
pip install fastapi uvicorn
“`
環境構築はこれでおしまい。# Hello world
まず、ざっとHello worldが表示されるコードを以下に記載してみた。
内容については後ほど詳しく。“`python
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()
origins = [“http://localhost:3000”,]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_
[Transformer入門]TensorFlowチュートリアル: Transformer
BERTを勉強していてTransformerについて整理しました。モデル部分は理解しましたが、訓練ジョブを流す部分などはほとんど見ていないですし解説もしていません。
seq2seqについては[記事「【Keras入門(7)】単純なSeq2Seqモデル定義」](https://qiita.com/FukuharaYohei/items/27cd247342a0f7006511)で以前解説をしました。
seq2seqとAttentionについては[記事「[Attention入門]seq2seqとAttentionの解説(TensorFlow)」](https://qiita.com/FukuharaYohei/items/350ac9ff75671e34cbae)で解説しました。
もともとは以下のオンライン講座を受講していて、Transformerに関する理解を深めようとしたのがきっかけでした(オンライン講座にはTransformerについても含んでいたが、より深く理解したいと考えました)。https://www.udemy.com/course/nlp-bert/
以下のTensor
AndroidアプリでPythonライブラリを使う 【Chaquopy】
# 概要
Chaquopyを使ってJava/Kotlin製Androidアプリの一部をPythonで実装し、Pythonライブラリを使う方法を紹介します。
本記事ではNumPyで乱数を生成し、Kotlin製Androidアプリの画面に表示します。# Chaquopyとは
[Chaquopy](https://chaquo.com/chaquopy/)とは、Java/Kotlin製AndroidアプリにPythonの実装を組み込むことができるSDKです。SciPyやPyTorchなど豊富なライブラリに対応しており、JavaやKotlinで扱いにくい処理をPythonで記述できます。
以前はライセンスの制約がありましたが、[2022/07/24にオープンソース化し](https://chaquo.com/chaquopy/chaquopy-is-now-open-source/)、MITライセンスとなったことで使いやすくなりました。
# 使い方
## 環境– MacBook Pro (2020年モデル / BigSur 11.6.4)
– Android Studio
matplotlibでtickparamsを使ってもticklabelが消えないときの対処法
おそらく対数スケールかつ目盛りが細かすぎる場合にTickが消えないことがあります.
“`python
import matplotlib.pyplot as plt_, ax = plt.subplots()
ax.tick_params(left=False, labelleft=False)
ax.set_yscale(‘log’)
ax.grid(which=’minor’, color=’gray’, linestyle=’:’)
ax.grid(which=’major’, color=’black’)
“`このときにAd-hocに対応するためにFontsizeを最小にするほうほうがあります.
“`python
ax.tick_params(axis=’y’, which=’major’, labelsize=1)
ax.tick_params(axis=’y’, which=’minor’, labelsize=1)
“`
pandas DataFrameをjupyter ipywidgetsでGUIランダム生成
2022/9/26 投稿
# 0. この記事の対象者
– Pythonの実行環境がある人
– Pythonをある程度触れる人
– Python pandasをある程度触れる人
– DataFrame形式のデータをランダム生成したい人# 1. はじめに
Pythonではcsvやエクセルの表データを扱うためにpandasというモジュールを提供しています.
pandasには列データを扱うSeries型と二次元の表データを扱うDataFrame型が存在し,それぞれのデータに対して集計や分析,グラフ描画などが可能です.
そんなDataFrame型のデータだが,その生成方法は以下のようなやり方が代表的です.
– csv, excel, pickleデータを読み込んで生成
– 適当な二次元配列から生成上記のケースで通常は満足するのですが,以下のようなケースで困ったことはないでしょうか.
:::note warn
– pandasの関数の挙動をパッと確認するために適当な表データを作成したいがスクラッチでいちいち作成するのは面倒
– 仕事でcsvデータを受領するまでに時間を要すが,項目名や
S3から最新ファイルをダウンロードしてスライドショー表示
ラズパイでフォトフレームを作る際にS3バケットから最新のファイルのみダウンロードして、
表示させようと試みたのでその時の備忘録。
あくまで個人のメモ程度の情報なので、参考にはならないかもしれません…## S3から最新ファイルを取得するPythonファイルを作る。
まずはラズパイにPythonファイルを作成。
ちなみに、Python環境やS3、AWS-CLIとかの設定は済んでいるものとして今回は割愛します。“`
import os
import boto3accesskey=”*****”
secretkey=”*****”
region = ‘*****’
bucket_name = ‘****’#Bucket list cache
def list_files(bucket_name):
s3 = boto3.client(‘s3’,aws_access_key_id=accesskey,
aws_secret_access_key=secretkey,
region_
PlateauのCityGMLをBlenderで読み込むアドオンを書いた
# Plateauの公式で配布されているデータがちょっと使いづらい
みなさん、Plateauのデータ活用されているでしょうか?
そもそもPlateauってなにという人は[こちら](https://www.mlit.go.jp/plateau/)の公式サイトを見てください。
見てない方向けに端的に言うと建物3DデータなどをCityGMLという形式で配っています。
また、そのほかにもFBXとOBJファイルでも配られていてこちらは、一見手軽に使えそうな気がするんですが、平面直角座標系という座標系で三次元座標に変換されているのですが、この座標系の場合中心が遠くになってしまう場合が多く非常に使いづらいです。
そのため、編集モードで全選択して中心に持ってくるなどの方法が紹介されていますが、この場合緯度経度と三次元座標の対応がわからなくなってしまいます。
この方法だと地域メッシュの中心が中心には来ず、ずれた位置に来ることになります。# BlenderでCityGMLを直接読み込みたいと思わないかね
ということでそもそもBlenderで直接CityGMLを読み込めればいいのではということで
G
【VSCode・初心者】pythonファイルをショートカットキーで実行
VSCodeでのショートカット作成
1. まずVSCodeを開き、キーボードで __⌘(command)+ k__ を入力してから __⌘(command)+ s__ を入力します。
2. そうすると、検索バーが表示されるので __python terminal__ と入力します。
3. 検索結果として、
日本語であれば __Python: ターミナルでPythonファイルを実行__
英語であれば __Run Python File in Terminal__
が表示されるので、そこにカーソルを合わせ __+__ を押すとショートカットキーを新しく入力できます。ちなみに、自分はshift + option + p で登録しました。
おまけ
同じように __Terminal: Focus Terminal__ を登録すると、ショートカットキーを使いエディタからターミナルに移動できる。
PySimpleGUIのラジオボタンを保守性良く記述
PySimpleGUIを使うと簡単にGUIアプリを作ることができて便利です。
ただ、その中でも、ラジオボタンは直接記述すると煩雑で保守性が悪くなってしまいます。
そこで、リストと辞書を活用して保守性の良い記述を考えてみました。“`python
import PySimpleGUI as sgrdco = { #ラジオボタン共通設定(辞書)
‘font’:(‘meiryo’, 16),
‘enable_events’:True
}
l_rd = [ #ラジオボタン設定 [group_id, デフォルト選択key, {共通オプション}, [[text, key]]]
[‘rtype’, ‘-RD_RT_NORM-‘, rdco, [
[‘白米’, ‘-RD_RT_NORM-‘],
[‘雑穀米’, ‘-RD_RT_ZAKKOU-‘]
]
],
[‘rsize’, ‘-RD_RS1-‘, rdco, [
[‘小盛’, ‘-RD_RS0-‘],
Signateコンペ
# はじめに
今回SIGNATEのSOTA Challenge[「オペレーション最適化に向けたシェアサイクルの利用予測」](https://signate.jp/competitions/567)に参加して銅メダルを獲得することができたため、コンペの概要と自身の解法について書いていこうと思います。
コードについては[GitHub](https://github.com/SY122095/share_cycle ‘share cycle competition’)に公開しています。# コンペの概要
シェアサイクル事業を展開するA社がオペレーション改善のために、どのステーションで何台くらい自転車に空きがあるかを機械学習により予測したい。
⇒与えられたデータを用いて各々のステーションにおける空き台数を予測する
評価指標としてはRMSEが用いられている。RMSEの算出方法は以下の通り。
$$ RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^n(y_i-\hat{y_i})^2} $$# データ概要
与えられたデータは以下の4つ。
__1. 自転車の台数状況データ
【Python – SQlite エラー】ValueError: parameters are of unsupported type
# タプル型??? 優先度変更用の括弧???
PythonでSQLiteを操作している際に発生したエラー、、、
以下のテーブル(pokemon)から図鑑番号が「25」の行を削除しようとしたときにお話ですね、、、| number | name | type1 | type2 |
| —- | —- | —- | —- |
| 25 | ピカチュウ | でんき | |
| 152 | チコリータ | くさ | |
| 875 | コオリッポ | こおり| |
| 884 | ジュラルドン | はがね | ドラゴン |“`python
cursor.execute(“DELETE FROM pokemon WHERE number = ?”, (25))
“`上のコードを実行すると以下のエラーが、、、
“`error
ValueError: parameters are of unsupported type
“`内容は引数のデータ型が違うとのこと、
う~~~ん、、、第二引数はタプル型でokでしょ、、、と思っていたんですが、上の書き方は
PyInstallerを使ってExcelVBA感を消したい
## 思い立ったきっかけ
– Excelでマクロを作って配布すると、既に開いているExcelが消えたり(見えなくなる)するので社内で不評の嵐となり定着しなかった
– ええ感じのツールを作ったのでみんなにもっと使ってもらいたい
– どうにかええ感じのツール感を出したい
– ついでにアイコンとかも拘ってExcel感を出さないようにしてオリジナリティを出したい
– できればインスタンスを分けて既存のExcelアプリに影響しないようにしたい## Excel感を出さないようにしたい
Excel(.xlsm)を実行させるときには、〇〇〇.xlsmを直接開いたりExcelから開くが基本だが、せっかく作りこんだのでできればアイコンとかも変えて作りこんだった感を出したい。**僕「ツールができました」**
**同僚「どうせExc…Excelじゃないッ?!」**
**僕(ぱっと見.exeなだけなんだけどね。)**
要するにこれがやりたい。
## .xlsmを別の方法で実行する
タイトルにもなっているが、今回はPythonモジュールの一つであるPyInstallerを使って実行する#
MigemoをPythonで
## はじめに
日本語の文章をローマ字で検索できるMigemo検索を、Pythonで利用したいと思ったことはないでしょうか。
MigemoのPython実装であるpymigemoをPyPIで公開したので、その利用方法を解説します。## Migemoとは
Migemoはローマ字で入力するだけで、漢字を含む様々な単語を検索できる検索手法です。
例えば、「吾輩は猫である」という文章の「猫」を検索したい場合、「neko」と入力するだけで、「猫」に検索がヒットします。Migemoの仕組みは簡単で、「neko」を仮名に変換し「ねこ」を得ます。次に、「ねこ」に完全一致か前方一致する単語を列挙し、その単語の一覧にヒットする正規表現を生成します。
「ねこ」の場合、以下の正規表現が生成されます。
“`
(猫|ねこ|ネコ|寐転|寝[転込]|寢込|弥固|根[刮子掘瘤]|ネコ)
“`あとはこの正規表現で検索を行えば、文章の「猫」部分にヒットします。
## Python実装での工夫
Pythonは様々なツールの開発で使われており、もしかしたらMigemoを使いたいという需要があるかもし
データベースが吹き飛ばされた件
# あっやb
先日、にらBOTのメインサーバーである「RaspberryPi」に、かねてから気になっていた`MongoDB`というものを入れようとしました。
この`MongoDB`というのは、いわゆるNoSQLのデータベースで、使いやすいらしいです。(小並感)
そして、考えるのが嫌だった私はとりあえず`apt`で入れることにしました。“`sh
$ sudo apt update
$ sudo apt install mongo
“`…うーん遅い。
これはけつあな確t((
というわけで、Windows TerminalのSSHとにらめっこする私。
数分が立って、「流石にちょっとやめよう」と思って`Ctrl+C`を押した所、なぜかRaspberryPiのaptではなく、WindowsのSSHのプロセスが終了しました。
驚く私。再度接続してみると、何事もなかったかのようにつながるRaspberryPi。
Discordを見ると、オフラインになっているにらBOT。## 私のパソコンに何が起きたのですか?
にらBOTや、いろんなサーバーを動かしているRaspberryPiは、
Pythonで階乗 math.factorial のアルゴリズム
# 0. はじめに
非負整数 $n$ に対して $1…n$ の全ての整数の積を **$n$ の階乗**(**factorial**)と呼び、$n!$ で表します。ただし、$0! = 1$ と定めます。
例えば、“`math
4! = 1 \times 2 \times 3 \times 4 = 24
“`です。
これを Python で計算する場合、
“`python
def factorial_naive(n: int) -> int:
result = 1
for i in range(1, n + 1):
result *= i
return resultprint(factorial_naive(4)) # 24
“`のように書くことができます。また、再帰関数の紹介でよく例示されているように、以下のようにしても計算できます。
“`python
def factorial_recursive(n: int) -> int:
if n == 0: return 1
return n
YouTubeの分析をするコードをPythonで実装してみた~超初心者向け~
Python初心者がpythonはじめて1時間の人でもわかるように説明するつもりです。
まずはともあれコード。いろんな記事からコピペしたりして作ってます。
“`
#convering watch-history.html into dataframe using BeautifulSoup
#このコードはYoutube視聴履歴を時間、タイトル、urlをもつデータフレーム:youtube.csvとurlのみのyoutubeurl.csvを出力します
# その情報をもとに、youtubech.csvに視聴したチャンネルのタイトルを出力します
# その情報をもとに、channels.pngに視聴したチャンネルとその回数をグラフとして出力します。
import pandas as pd
from bs4 import BeautifulSoup
import io, sys#if your pc environment is not encorded by utf-8, you need folloing
sys.stdout = io.TextIOWrapper(sys.stdou
Pythonで「時をかける少女」風のスクリーンセーバーを作る
# はじめに
### スクリーンセーバーとは
スクリーンセーバーは、パソコンを一定時間放置したときに、自動的にディスプレー画面を暗くしたり、アニメーションを表示したりするプログラムです。もともとは、同じ画面をずっと表示させ続けると、画面を変えても元の画面が残ってしまう「焼き付き」を防ぐためのものでした。しかし、ディスプレイの性能もあがりほとんど焼き付きはおこらなくなったので、最近ではのぞき見の防止のために使われることが多いです。
また、パソコンを放置している間にディスプレイに表示してくれるので、ある種のアートとしてさまざまなものを表示させて楽しむという使い方もあります。Windows10のスクリーンセーバーだと、メタリックなWindows10のマークがぐるぐる回っているものが一番メジャーじゃないかと思われます。
自分は、もともとは「Fliqlo」という、パタパタ時計(正式名称はフリップクロック)を模したデザインのスクリーンセーバーを友達のすすめで使っていました、しかし、2021年1月12日のAdobe Flush Playerが使えなくなったことに伴って、Fliql