- 1. django_datatables_viewで1ページ100件超えが表示できない不具合の対処法
- 2. Alexaとのマンネリ生活にサヨナラを Pythonで始めるAlexaスキル開発
- 3. pythonにおけるクラスインスタンスのコピー
- 4. postqueue-pをcsvにする方法
- 5. APIをテストツール「Postman」を使ったDjangoとのCRUD機能実装(実装編)
- 6. 【勉強メモ】Rasa (1)
- 7. J-Quants APIを使って上場銘柄一覧を取得する
- 8. 【機械学習】AUCとGini係数の関係を理解する【評価指標】
- 9. LOD2建築物モデル自動生成ツールの環境構築時に発生したエラー
- 10. Pandasの分析前のデータ確認
- 11. pythonでJSONを扱う方法
- 12. VS-Codeでデバッグ開始が機能しない
- 13. 2つの素数の和で表される数(ゴールドバッハの予想を仮定して)
- 14. ABC342回答メモ
- 15. StableDiffusionでLoraを使う(コードから使う)
- 16. ReactとFlaskの組み合わせにおけるCORSの重要性と設定方法
- 17. react + backend(flask)のviteを使った環境構築備忘録
- 18. Windows環境でMeCabとNEologDを使用してPythonで形態素解析を行う方法(環境構築)
- 19. ABC342のA~F問題をPythonで解説(復習)
- 20. ABC342をPythonで(A~E)
django_datatables_viewで1ページ100件超えが表示できない不具合の対処法
Djangoでdatatablesのサーバー連携を使用できるdjango_datatables_viewで、1ページあたり100件を超えるレコードがすべて表示できない不具合の対処法を紹介します。とてもわかりにくい不具合になっており、目視だと気が付かない可能性があります。
※ これは2021/03/28に個人ブログで公開した記事を移植したものです。
## django_datatables_view について
django_datatables_viewとは、datatablesのサーバー連携を使用できるDjangoのクラスベースビューです。
datatablesとは絞り込み・ソートなど多機能なテーブルをかんたんに実装できるjQueryプラグインです。Djangoの管理画面よりもカスタマイズ豊富な上に、ほとんどプログラムを書くことなく、(デザイン, フロントエンド, バックエンドも)何も考えずにデータベース内容を一覧に表示できます。
![django-datatables-viewを使用しているテーブルのスクリーンショット](https://qiita-image-st
Alexaとのマンネリ生活にサヨナラを Pythonで始めるAlexaスキル開発
# HelloAlexa!(読み飛ばしOK)
2022年のブラックフライデー、私はAlexaEchoShow5(以下、Alexa)をSwitchBotとともに購入し、生活が激変した。タッチパネルに触れずとも、声だけで電気を点けたり、テレビのチャンネルを変更できる。これは私にとって大変目新しく非常に刺激的な体験だった。当初、声で端末を操作するなんて恥ずかしいと考えていたが、今では家電を声で操作する便利さにすっかり慣れ、「Alexaなくして我が生活なし」といった感じになっている。ところが所詮私も人間、慣れるとどんどんマンネリ化していき「最近、うちのAlexaは電気を点けたり消したりすることに終始していて、何か物足りないな」と感じるようになった。さて、この物足りなさを解消するにはどうすればよいのか?
解消のカギを握るのが今回紹介するAlexaスキルだろう。以前から「Alexaスキルの開発ができるとAlexaを使っていろいろできるようになるぞ(ざっくり)」と小耳にはさんでいたので、その存在自体は知っていた。しかし、ほとんどPythonしか触らないひよっこ日曜エンジニアの私には、何から手を
pythonにおけるクラスインスタンスのコピー
pythonにおけるクラスインスタンスのコピーについて、copyモジュールのcopyとdeepcopyの違いを確認したので、そのまとめと実験の結果です。
# 結論
pythonのコピーモジュールの`copy.copy`と`copy.deepcopy`について、それぞれ以下の動作をします
## copy.copy
– 新たなインスタンスが生成される
– 各インスタンス変数(self.xxx)は、コピー元のインスタンス変数それぞれにcopy.copyを行った値を持つ
– つまり、イミュータブルなオブジェクトであれば値のコピー、ミュータブルなオブジェクトであればコピー元のインスタンスのインスタンス変数への参照を持つクラスインスタンスが生成される## copy.deepcopy
– 新たなインスタンスが生成される
– 各インスタンス変数は、コピー元のインスタンス変数それぞれにcopy.deepcopyを行った値を持つ
– つまり各インスタンス変数は、イミュータブル/ミュータブルに関わらず、コピー元のインスタンスと同じ値を持った新たなオブジェクトとなる# 実験
## 実験内容
以下のコ
postqueue-pをcsvにする方法
“`
import csv
from datetime import datetime, timedelta
import sysdef convert_to_datetime(arrival_time_str):
“””指定された日時文字列をdatetimeオブジェクトに変換する”””
current_year = datetime.now().year
full_date_str = f”{current_year} {arrival_time_str}”
arrival_datetime = datetime.strptime(full_date_str, ‘%Y %a %b %d %H:%M:%S’)
if arrival_datetime > datetime.now():
full_date_str = f”{current_year – 1} {arrival_time_str}”
arrival_datetime = datetime.strptime(full_date_str, ‘%Y %
APIをテストツール「Postman」を使ったDjangoとのCRUD機能実装(実装編)
## 概要
今回は新しい画面機能を作成し、「Postman」と並行してフロント / バック間のデータ挙動の可視化と構成の実装について書いていきます。
### 実装機能
今回実装していくのは、ちょっとしたコツや記事を[ナレッジベース](https://www.stock-app.info/media/knowledge-database/)風にまとめる「Tips」というコンテンツです。
– Django REST Framework(DRF)を使ったAPI連携、CRUD機能
– 外部キーを参照したCRUD機能
– パラメータの利用
– パラメータを参照したReact routerでのルーティング| 項番 | 記事 |
| :— | :— |
| 1 | [React + Django + CORSを使ったフロントエンド / バックエンドのデータ連携](https://qiita.com/xinome/items/8319a7f85424bd6e62de) |
| 2 | [Django 管理画面のカスタマイズ](https://qiita.com/
【勉強メモ】Rasa (1)
# Rasa
## 環境構築
“`batch
pip install rasa
pip install ginza ja-ginza
“`“`batch
mkdir Rasa
cd Rasa
rasa init –no-prompt
“`## 日本語設定
“`yaml:config.yml
recipe: default.v1assistant_id: placeholder_default
language: ja
pipeline:
– name: SpacyNLP
model: ‘ja_ginza’
– name: SpacyTokenizer
– name: SpacyFeaturizer
– name: SpacyEntityExtractor
– name: RegexFeaturizer
– name: LexicalSyntacticFeaturizer
– name: CountVectorsFeaturizer
– name: CountVectorsFeaturizer
analyze
J-Quants APIを使って上場銘柄一覧を取得する
## 概要
個人的に株の分析を行うにあたり、J-Quants APIを使って上場銘柄一覧を取得した際の手順となります。
## 環境
– mac OS: 13.5.2
– Python: 3.12.1## J-Quants APIとは
株価や財務などの金融データをヒストリカルで簡単に取得できる、個人投資家向けのAPIデータ配信サービスです。
JPX総研により提供されています。https://jpx-jquants.com/
## 注意点
J-Quants APIサービス利用規約を事前に確認しました。
利用する際に注意すべきと感じたのは下記の2点です。– 登録ユーザーの私的使用のみ利用できる事
– 商用もしくは学術目的での利用は禁止である事https://jpx-jquants.com/termsofservice
## 上場銘柄一覧を取得するまでの手順
### アカウント作成
トップページから【アカウントを作成する】より、手順にしたがいアカウントを作成します。
プランを選ぶように表示されるので、任意のプランを選びます。
今回はFreeプランを選択しまし
【機械学習】AUCとGini係数の関係を理解する【評価指標】
# はじめに
二値分類の評価指標について
「**AUCとGini係数ってどんな関係だっけ?**」
と毎回忘れては調べているので、いい加減覚える意味で体系的にまとめてみる。この記事では
– AUCとは何か?
– Gini係数とは何か
– 両者はどんな関係があるか?を理解することを目的とする。
# 最初に結論
AUCとGini係数の間には“`math
Gini=2AUC−1
“`
の関係がある。
AUCは0.5から1の範囲を取るため、Gini係数は0から1までの範囲を取る。
どちらも値が大きいほど分類性能が良いことを表す。
最終的にこの式を理解することを目的としよう。# AUCを理解しよう
AUC (Area Under the Curve)は**二値分類**における有名な**評価指標**の一つであり、文字通り、「**ROC曲線下の面積**」を表す。
## ROC曲線とは?
ROC (Receiver Operating Charastaristic Curve)は受信者操作特性と呼ばれるカーブを表す。以下の図にあるようなカーブがROC曲線だ。(図はすべて
LOD2建築物モデル自動生成ツールの環境構築時に発生したエラー
## はじめに
国土交通省が開発を進めるPLATEAUの「LOD2建築モデル自動生成ツール」の環境構築時にはまったポイントについての備忘録です。使用するツールについては以下を参考にしてください。
## 参考サイト
https://github.com/Project-PLATEAU/Auto-Create-bldg-lod2-tool
https://www.mlit.go.jp/plateau/file/libraries/doc/plateau_tech_doc_0056_ver01.pdf
https://github.com/Project-PLATEAU/Auto-Create-bldg-lod2-tool/blob/main/docs/USER_MANUAL.md
## 仮想環境構築
venvで作成した仮想環境は移動・コピーしたりすることが出来ません。ディレクトリ名が完全に一緒だったら使用できるかもしれません。.pyファイルを実行しようとすると,以下のように実行することが出来ません。“`markdown:コマンドプロンプト
.pyのあるディレクトリ名> p
Pandasの分析前のデータ確認
## はじめに
Pandasの分析前のデータ確認に関しての備忘録です。
初心者です😅
もし間違いがあれば、ご指摘いただけると助かります🙇
## 🦁**結論**🦁
Pandasを使ったデータ分析をする前に行うべきこと
「データの概要確認」
「カラム名の確認(取得)」
「データ型の確認(取得)」この操作を理解する必要がある。
:::note info
押さえておくべき点
* Pandasでの分析する前に正しいデータなのかを確認することは重要。
:::
***:::note alert
注意点
* .describe()では基本は整数値の列の情報を取得できる。
* .describe()文字列の情報はinclude=’all’を加える必要がある。
:::***
## **Pandas 分析前の関数一覧**
## **.head()**
データフレームの最初の数行を表示させる。
デフォルトは5行。
“`py
print(df.head(2)) # 最初の2行を表示
“`
***
pythonでJSONを扱う方法
# 目的
python初心者です。
webAPIで取得したJSON形式データをpythonで取り扱いたいと思いました。
JSONとは、{}などを用いた記法であり、そのままでは`文字列`型であることから、
`dict`型などpythonオブジェクトに変換して取り扱う必要があります。
エンコードとデコードの意味もよくわかっていなかったので調査しました。
https://docs.python.org/ja/3/library/json.html# JSONライブラリ
最初にimportします。“`python
import json
“`# エンコード方法(pythonオブジェクトをJSON形式に変換)
pythonオブジェクトをJSON形式に変換するするために`.dumps`メソッドを使用します。
変換されたJSON形式のデータ型は`str`型です。
よく似た名前のメソッドに`dump`がありますが、これはデータをJSON形式にエンコードしてファイル保存するメソッドですので、間違えないようします。
VS-Codeでデバッグ開始が機能しない
# 【環境】
OS: Windows11 Pro(23H2)
Python 3.12.2 64bit
Visual Studio Code 1.86.2
Python Debugger V2024.0.0# 【症状】
* VS-Codeでデバッグ開始が機能しない
* デバッグ無しで実行は機能する# 【対処方法】
Pythonのバージョンをダウングレードする
Python 3.12.2 64bit ⇒ Python 3.10.7 64bit
2つの素数の和で表される数(ゴールドバッハの予想を仮定して)
### 【例題 1】 N以下の正の整数で2つの素数の和で表される数の個数を求めよ
まず例として$N=20$のとき素数の数を数えると8個あります。
“`python
import sympy as sp
N = 20
primes = list(sp.primerange(N+1))
print(len(primes), primes)
# 8 [2, 3, 5, 7, 11, 13, 17, 19]
“`この中から重複を許して2個足し合わせてできる数を求めます。
“`python
from itertools import combinations_with_replacement as combr
pp = set([sum(ps) for ps in combr(primes,2) if sum(ps) <= N ]) print(f"p2 = {pp}") #p2 = {4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20} ``` これだけだと分かりづらいので奇数と偶数に分けます。 ```python
ABC342回答メモ
# 0.はじめに
3連休中日なので、うっかり忘れないよう気をつけながら参加。
A問題が150点と歯ごたえのある問題から始まりましたが
Cも350点と若干難しめ。
それでも自分的最低ラインのD問題までは解けたので
まぁ満足でした。時間は結構ギリギリでしたが。
レートは微増の979と最高値更新。そろそろ緑コーダを名乗っても
よさそうかなと思いました。# 1.A – Yay!
意外と面倒な問題。
いろいろやり方はありそうではありますが
なんとなく思いついた以下で対応。
【実装】
・辞書を用意
・文字列を頭から見ていく
-辞書にない場合はキーに文字、値に位置を登録
-辞書にある場合は、値を-1に変更
・辞書の値の最大値を出力して終了https://atcoder.jp/contests/abc342/submissions/50565226
# 2.B – Which is ahead?
求められることを素直に実装すればよさそうな問題。
素直に実装してAC
【実装】
・辞書を用意
・辞書を用意
StableDiffusionでLoraを使う(コードから使う)
# 1行でテイストが変わる
Stable Diffusion はテキストから画像を生成してくれる AI ですが、
**Lora** は元のモデルにつけたしであるテイストを加えることができるものです。たとえばこれは
“`
a machine learning boy
“`というテキストから Stable Diffusion で生成した画像ですが、
![boy_snow (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/a2d42f52-7a34-3f47-57a8-2aa9b3255ecc.png)
水彩画を学習した Lora を Stable Diffusion にロードして同じテキストで生成すると、
![boy_snow (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/e702b78e-7a35-97f9-09a1-9c7226126d59.png)
こうい
ReactとFlaskの組み合わせにおけるCORSの重要性と設定方法
## はじめに
近年、フロントエンドとバックエンドの分離が一般的な開発パターンとなっています。このような構成では、Reactのようなフロントエンドフレームワークを使ってUIを構築し、Flaskのような軽量なバックエンドフレームワークをAPIサーバーとして使用することがよくあります。しかし、このようなアーキテクチャを採用する際、Cross-Origin Resource Sharing(CORS)に関する理解と適切な設定が大切で、本記事がその備忘録です。
## CORSとは?CORSは、ウェブページが異なるオリジン(ドメイン、プロトコル、ポート)のリソースにアクセスすることをブラウザが許可するようにするセキュリティ機能です。デフォルトでは、ブラウザは同一オリジンポリシーを強制し、異なるオリジン間のリソース共有を制限します。しかし、実際のアプリケーションでは、フロントエンドとバックエンドが異なるオリジンに存在することがよくあります。このとき、CORSポリシーの設定が必要となります。
## FlaskにおけるCORS設定
FlaskでAPIを構築し、Reactアプリケーションから
react + backend(flask)のviteを使った環境構築備忘録
## 前提
以下の環境を想定しています。
“`
npm -v : 9.8.0
node -v : v20.4.0
python3 –version : 3.12.2
create-vite@5.2.1
“`
## 手順
2024年現在最新の`vite`を使ったコマンドは以下の通り①まずルートのディレクトリを作る
②その下に`backend`フォルダを作る
③ルートに戻って以下のコマンドを実行し、`frontend`フォルダを作る
“`
npm create vite@latest frontend — –template react
“`
④`fronend`に`cd`し、`npm install`する。## 大切なこと
– `frontend`と`backend`を完全に切り離して開発できること。
– `frontend`と`backend`の通信はhttpを通してだが、`SOP`(`Same-Origin Policy`)が引っかかるので`CORS` を設定しないといけないこと。(`flask`だったら`flask-cors`
– backendの言語はな
Windows環境でMeCabとNEologDを使用してPythonで形態素解析を行う方法(環境構築)
# 構築環境の前提
本テーマの前提環境
・Windows
・Python3.11.6他の方の記事を参考にしましたが自分のパソコンの環境では上手くいかなかったので、自分が上手くいった方法を記事に残しておくことにしました。
# 1.MeCabのダウンロード
MeCabのインストール方法は以下のサイトに参照してください。https://www.kkaneko.jp/ai/win/mecabinst.html
環境変数のPATHに以下のコードを追加することを忘れなく。
PATHを通さないとMeCabは動作しません。
サイト通りに作業しPATHを通しても上手くいかない場合は、コマンドプロンプト(cmd)を再起動してください。
“`
C:\Program Files (x86)\Mecab\bin
“`# 2.PythonとMeCabを連携する
python上でMeCabを動作させるために、その2つを連携する必要があります。
連携させるためにcmdに以下のコマンドを入力してください。“`
pip install mecab-python3
“`
インストールできたら、P
ABC342のA~F問題をPythonで解説(復習)
## はじめに
### 関係するリンク(参考文献など)
– [今回のコンテスト](https://atcoder.jp/contests/abc342)
– [D問題のサポート](https://qiita.com/snow67675476/items/e87ddb9285e27ea555f8)
– [F問題の公式解説](https://atcoder.jp/contests/abc342/editorial/9345)
### 筆者について
– [Atcoderアカウント](https://atcoder.jp/users/mattsunkun)
– [今回の成績(oooooxx)](https://atcoder.jp/users/mattsunkun/history/share/abc342)
– [解説で示したA問題の提出](https://atcoder.jp/contests/abc342/submissions/50619821)
– [解説で示したB問題の提出](https://atcoder.jp/contests/abc342/submissions/5061992
ABC342をPythonで(A~E)
HUAWEI Programming Contest 2024(AtCoder Beginner Contest 342)の解答等のまとめ
https://atcoder.jp/contests/abc342
# A問題
1文字なのが何か求めて、そのインデックスを出力
“`python:A
s = input()
t = sorted(list(s))
diff = t[-1] if t[0] == t[1] else t[0]print(s.index(diff) + 1)
“`
# B問題
全探索しても間に合うので、$a$と$b$のインデックスを毎回調べて答えればよい
“`python:B
n = int(input())
p = list(map(int, input().split()))for _ in range(int(input())):
a, b = map(int, input().split())
print(a if p.index(a) < p.index(b) else b) ``` # C問題 $S$を毎回変更していては間