- 1. 概要
- 2. 使用言語・実行環境
- 3. 実行コード
- 3.0.1. 格安30倍光学ネットワークカメラをハックする
- 3.0.2. Visual Studio Code を使って、MacでPython分離環境を作成する手順
- 3.0.3. AWS EC2でpip install mysqlclientができない
- 3.0.4. Raspberry Piでプログラムを自動起動(2)_autostart
- 3.0.5. プロ野球の順位表のデータから順位予測のモデルを作るのは難しい
- 3.0.6. GPT連携アプリ開発時の必須知識、RAGをゼロから解説する。概要&Pythonコード例
- 3.0.7. 仮想通貨現物アビトラ機会検知機(CCXTからの引用)
- 3.0.8. ChatGPT先生に明日のBTC価格が上がるか下がるか聞いてみた
- 3.0.9. Pythonで超簡単スクレイピングOpenScrapeを使う
- 3.0.10. pydatasetについて ChatOpenAI に意見をもらう 第7部
- 3.0.11. ぼくのかんがえたさいきょうの強化学習アルゴリズム(テーブルベース編)
- 3.0.12. 【Python3】JSON形式ファイルの読み書き方法
- 3.0.13. E資格の例題を作ってみた!問題傾向を知りたい人向け
- 3.0.14. WEBサイトのデータ取得
- 3.0.15. 競プロ用の開発環境を何も考えずに爆速で欲しければGitHub Codespacesを使おう
Pythonの投稿記事をまとめてみました。
# はじめに
ここ半年間、Pythonの勉強しながらQiita投稿した記事をまとめてみた。
Pythonはライブラリが充実しており、何かやりたいことがあれば、ほとんどの場合に対応できる便利な言語。Pythonの本領である機械学習にはまだ手を出していないので、これからも勉強続けたい。# 目次
分類|概要
—|—
[エクセル処理・ファイル処理](#エクセル処理ファイル処理)|PandasやOpenpyxlでのエクセル処理や、テキストファイルのファイルの読み書き等。
[仕事効率](#仕事効率)|仕事で使うとちょっと便利な小技。
[Kivy関連](#kivy関連)|GUIライブラリKivyの使い方。
[Androidアプリ関連](#androidアプリ関連)|Kivyを使ったアンドロイドアプリ。
[Raspberrypi関連](#raspberrypi関連)|電子工作関連。MicroPython。
[文字列処理](#文字列処理)|文字列や数値の整形、変換処理。
[Python基本](#python基本)|Python文法の基本。## エクセル処理・ファイル処理
+ [Ex
Streamlitの後継者を求めて②
# はじめに
お世話になっております。
猫ミームを見すぎて、X(旧Twitter)もYoutubeも猫ミームだらけになってしまい危機感を感じています。
さて、前回書いた記事をもとに`Reflex`、`Solara`、`Taipy`を使用して、Webアプリケーションを弄っていましたが、まったく理解できずに僕「Streamlitしか勝たん。」
と心の中に住んでいるギャルがつぶやいていたところ、コメントで`Streamsync`というフレームワークがあることを教えていただきました。
Streamlitのパチモンか?と気になりながら、調べてみるとJuliaのGenieBuilderのようにGUIなどのコンポーネントをビジュアライゼーションで組み立てることができるとのこと。気になったらやってみる精神のため、とりあえず触ってみたので、簡単にまとめたいと思います。
前回記事↓
https://qiita.com/inoshun/items/4f9075bbba47f7bb0570
# Streamsyncとは
フロントエンドはノーコード、バックエンドはPythonで。とうたってるよう
Googleフォトからダウンロードした写真のメタデータ編集をしたよ
子供が生まれて写真が膨大な量になってきたこともあり、
「サブスクで管理するには高い!!! でも、子供の写真を消すことができない!!」
ということで、家庭用NASを導入することにした。そこで今まで取っていた写真をGoogleフォトから家庭用NASに写真を写真を移そうと思ったのだが、すべてのデータをダウンロードしたところなんとメタデータと写真が別に保存されている仕様!
しかも、写真に撮影日などの情報を再度付けるプログラムがあるらしいけど、なんかexeしかなくて、Macユーザーの私は一体どうすればいいのー!
このままでは写真を取った日付けがわからなくなって移行したはいいもののなんか微妙な感じになってしまう!というわけでしょうがないのでpythonでtimestampの書き換えプログラムを書いたのでここに備忘録を残しておきます。
ちなみにアーカイブ形式での一括ダウンロード方法は[こちら](https://support.google.com/accounts/answer/3024190?sjid=16825085842255200521-AP)を参考にしてください。## 環境構
Zennで「いいねした投稿」と「読んでいる本」をNotionで管理する
# 何を作ったか
Zennで自分が「いいねした投稿」と「読んでいる本」をNotionのデータベースに保存するスクリプトを作りました。[Notion]((https://www.notion.so/ja-jp))のアカウントとpythonの実行環境があれば誰でも使えるようになっています。
すぐに試したい方は、[こちら](https://github.com/Taichiro-S/Zenn2Notion)のREADMEを読んで試してみてください
こんなもの↓ができます!(これは私がいいねした投稿の一覧です)
https://zealous-rosehip-7a8.notion.site/a3c1dd8fa96a42fbb6e162e91354a68d?v=324c9e7e593746838d64ee2123d175e6&pvs=4
# 前書き
皆様は**Zennでいいねした記事**や**読んでいる本**を、どうやって管理していますか?
全部覚えとるわ😤という方はこの記事を読む必要はありません!私のように読んだ記事を片っ端からいいねして保存した気になっている人は、
– は
国土交通省サイトから海岸線の緯度経度データを取得
概要
[国土交通省の国土数値情報ダウンロードサイト](https://nlftp.mlit.go.jp/ksj/jpgis/datalist/KsjTmplt-C23.html)から各都道府県の海岸線データ(XML形式)を取得して,緯度経度データを抜き出し,CSVファイルに保存する処理を実行しました.
使用言語・実行環境
- Python3.8
- OS: Windows11
使用ライブラリ
- pandas
- os
- xml.etree.ElementTree
- folium
- matplotlib
- tqdm.notebook
実行コード
以下がすべての実行コードになります.今回は,一例として千葉県の海岸線情報を取得しました.
各処理の詳細は後述.“`
import
格安30倍光学ネットワークカメラをハックする
## 格安2万円代の30倍光学ネットワークカメラをPCから制御出来るように。
本IPカメラの基本設定(ネットワーク設定等)や、付属アプリケーションの説明は、記載していません。![IP-Camera.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/551517/4da3dd9f-529b-8dad-61ea-1de71e91aae9.png)
### 調査内容
対象とするネットワークカメラは、Ctronins(クロニクス)中華製の防犯カメラです。
– チルトパン制御
– ズームアウト・ズームイン制御
– 映像の取り込み### 1. チルト・パン制御
チルト・パン制御は、http-getで制御ができます。カメラを右側へ向ける
“`
http://admin:admin@192.168.0.20/web/cgi-bin/hi3510//ptzctrl.cgi?-step=0&-act=right&-speed=63
この間に右側へ向く
http://admin:admin@192.168.0.2
Visual Studio Code を使って、MacでPython分離環境を作成する手順
■ 環境
・Python:Homebrew で pyenv をインストールし、pyenv から Anaconda をインストール。
・Visual Studio Code に Pythonプラグインをインストール済。■ 手順
・任意のフォルダを作成し、Pythonファイル(*.py)を保存する。
・VSCodeでフォルダを開く。
・コマンドパレットで “Python: 環境の作成…” を実行する。
・”conda” を選択する。
・Pythonのバージョンを選択する。
・’.conda’ が作成される。
・VSCodeを一旦終了して、再度VSCodeを起動してフォルダを開く。⇒ VSCode右下のステータスバーに “(‘.conda’: conda)” と表示されて、作成した環境がVSCodeで認識されていることを確認できる。
AWS EC2でpip install mysqlclientができない
# pip install mysqlclientができないときの対処法
解決
ubuntuで必なパッケージ pkg-configが入っていなかった。
“`bash:shell
$ sudo apt-get install pkg-config
“`もしかしたら下も必要かもしれない。
“`bash:shell
$ sudo apt-get install libmysqlclient-dev
“`
Raspberry Piでプログラムを自動起動(2)_autostart
# Raspberry Piで自動起動する方法
[参考の記事](https://qiita.com/karaage0703/items/ed18f318a1775b28eab4)によると大きく5つがあるようです。
本記事はautostartを使った自動起動を試行た際のメモを記載しておきます。* /etc/rc.local
* autostart ←今回の記事
* crontab @reboot
* /etc/init.d
* systemd ←別の記事 [Raspberry Piでプログラムを自動起動(1)_systemd]()autostartを使用した自動起動は(Raspbian Buster以降)
GUIのプログラムを起動時に実行したいときに使います。# 1. 起動したい`.py` `.sh`を準備する
Ex. momoの自動起動の場合
`home/pi/momo…/auto_launch.sh`
`echo`の部分は確認用なので記述は任意“`bash:auto_launch.shの中
#!/bin/sh
echo Start auto_l
プロ野球の順位表のデータから順位予測のモデルを作るのは難しい
# はじめに
冬から春先にかけてプロ野球の解説者が新シーズンの順位予想をします。
その順位予想は「上位にK藤、Y田、Y川がいるから⚪︎位」のように感覚的で抽象的であると思いましたので、機械学習を用いて順位予測ができないか手軽にコードを書いてみましたが、精度の高くない順位予測モデルが出来上がりましたので作業内容を一部だけ公開します。![resized_futuristic_baseball_stadium.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603047/37a36972-53ef-856d-1382-7b2d193eb841.png)
# つくるもの
パリーグの順位表を独自集計しているサイト(NPBの公式のものを使用しようと思いましたがカラムが少ないため、非公式なものを使用しましたがデータの選定に関して参考にしないでください)からデータを引用し、決定木の手法で順位予測モデルを作成する。
打率や打点、防御率などをリクエストに詰めて、このモデルを呼び出すと順位を予測するREST APIを作成(
GPT連携アプリ開発時の必須知識、RAGをゼロから解説する。概要&Pythonコード例
こんにちは。[わいけい](https://twitter.com/yk_llm_gpt)です。
今回の記事では、生成AI界隈ではかなり浸透している **RAG** について改めて解説していきます。
「低予算で言語モデルを使ったアプリを開発したい」というときに真っ先に選択肢に上がるRAGですが、私自身もRAGを使ったアプリケーションの実装を業務の中で何度も行ってきました。
今回はその知見をシェア出来れば幸いです。
## RAG(Retrieval-Augmented Generation)とは
まず、 **そもそもRAGとは何ぞや?** というところから見ていきましょう。
RAG(Retrieval-Augmented Generation) は自然言語処理(NLP)と特に言語モデルの開発において使用される技術です。
この技術は、大規模な言語モデルが生成するテキストの品質と関連性を向上させるために、外部の情報源からの情報を取得(retrieval)して利用します。
要は、ChatGPTなどの言語モデルに特殊な知識に関連した情報を喋らせる技術だと言えますね。
皆さんご
仮想通貨現物アビトラ機会検知機(CCXTからの引用)
# 趣旨
CCXTにおいてあったアビトラ検知用のコードを少しだけ改造してみやすくしてみました。
コード自体は元ページのものを見た方がいいかも知れません。https://docs.ccxt.com/#/./examples/py/arbitrage-pairs
取引所間のシンボルの違いによってあまり使い物にならないと思いますが、botいじってる感万歳の結果が表示されるのでぜひやってみてください。
“`python arbitrage.py
import ccxt
import sysdef style(s, style):
return style + s + ‘\033[0m’def green(s):
return style(s, ‘\033[92m’)def yellow(s):
return style(s, ‘\033[93m’)def red(s):
return style(s, ‘\033[91m’)def dump(*args):
print(‘ ‘.join([str(arg) for arg
ChatGPT先生に明日のBTC価格が上がるか下がるか聞いてみた
# 趣旨
最近のGPT先生はバージョンがアップが凄まじく、気づかないうちに新機能が続々と登場していたので、面白半分でGPT先生に価格予測してもらったら仕事が楽になるんじゃないかと思って聞いてみました。GPT先生にAPIで接続して毎回直接予測を聞かせてもらおうと思って依頼してみたんですが、なぜかコードをまるまるくれたので言われるがままコードの中身も全く把握せず起動させてみました…。
そしたらなんか言い切る形でアップトレンドだとはっきり言ってもらったのでロングしようと思います(^^)
“`json
{
“prediction”: “up”
}
“`# コード
必要なライブラリをインストールします。
結構多いですね。
なぜFlask採用なのかもよくわかりません。
とりあえずコードくれたので喜んで実行してみます。“`
pip install pandas numpy scikit-learn joblib flask yfinance
“`Gradient Boosting Machine (GBM) modelというモデルを使っているみたいですが、僕にはそれが
Pythonで超簡単スクレイピングOpenScrapeを使う
# はじめに
連休に入るにあたり、以前から作成したかったPythonライブラリを作りました!AI学習などでは、スクレイピングはデータ収集において欠かせない要素となっています。そのため、より効率的にデータを収集できるライブラリを目指し、開発を進めました。現在もまだ開発段階ではありますが、皆様からのフィードバックや要望をISSUEにてお待ちしております。ISSUEは日本語や英語でも受け付けていますが、それ以外の言語での投稿はご遠慮ください。下記からISSUEを作成できます。
https://github.com/umaxiaotian/OpenScrape/issues
使用に関して、各ウェブサイトのrobots.txtを確認し、組み込もうとしているサービスが禁止されているボットに該当しないかどうか確認ください。
https://github.com/umaxiaotian/OpenScrape/tree/main?tab=readme-ov-file#warning
# OpenScrapeとは
様々なサービスからデータをスクレイピングするためのPythonライブラリです。現
pydatasetについて ChatOpenAI に意見をもらう 第7部
– [「pydatasetについて ChatOpenAI に意見をもらう 第1部」 ](https://qiita.com/maskot1977/items/a88cf243a49932cb122d)
– [「pydatasetについて ChatOpenAI に意見をもらう 第2部」 ](https://qiita.com/maskot1977/items/7fef12f5e635963ea52f)
– [「pydatasetについて ChatOpenAI に意見をもらう 第3部」](https://qiita.com/maskot1977/items/740563ce8b646fa63f5e)
– [「pydatasetについて ChatOpenAI に意見をもらう 第4部」](https://qiita.com/maskot1977/items/ed661101e392782753dc)
– [「pydatasetについて ChatOpenAI に意見をもらう 第5部」](https://qiita.com/maskot1977/items/3a256fc0653a57954b4b
ぼくのかんがえたさいきょうの強化学習アルゴリズム(テーブルベース編)
この記事は自作している[強化学習フレームワーク](https://qiita.com/pocokhc/items/a2f1ba993c79fdbd4b4d)の解説記事です。
https://github.com/pocokhc/simple_distributed_rl
# はじめに
今までフレームワークを通じて様々な強化学習アルゴリズムを実装してきました。
今回その知識を生かしてオリジナルなアルゴリズムを考えてみたので記事にまとめてみます。このアルゴリズムは以下の状況でかなりの精度を誇ります。
+ マルコフ決定過程なモデル
+ 状態が離散で現実的な数
+ 行動が離散で現実的な数※”現実的な数”というのは数に上限があり、その上限がそれほど大きくない場合を指します
# 基本アイデア
基本的なアイデアは探索(Exploration)と活用(Exploitation)の分離です。
強化学習では一般的に「探索と活用のトレードオフの問題」[^1]があり、探索を優先すると報酬が少なくなり、活用を優先すると局所解に陥る可能性が高くなる問題があります。[^1]: 出典は調
【Python3】JSON形式ファイルの読み書き方法
# JSON形式ファイルの読み取り
##### ●今回使用するサンプルファイル
“`python:di.json
{
“name”: “Google Inc”,
“url”: “https://www.google.com”,
“staffs”: [
{“name”: “田中”, “age”: 40},
{“name”: “佐藤”, “age”: 60}
]
}
“`##### ●json.loadを使ってファイルを読み取る
“`di_read.py
import jsonwith open(r’C:\Users\User\Desktop\python3_practice\di_read.json’, encoding=”utf-8″) as f:
di = json.load(f)print(di[‘name’])
print(di[‘url’])
print(di[‘staffs’])# <出力結果>
# Google Inc
# https://www.google.com
E資格の例題を作ってみた!問題傾向を知りたい人向け
E資格の過去問は一般的には公開されておらず、誰かに過去問を見せることも禁止されています。JDLA公式で少し過去問が公開されていますが、それしか問題傾向を掴む方法がないのです。
そこで今回はE資格の例題を解かせてくれるJDLA認定プログラムと、実際に簡単な例題を作ってみたので公開させてください。## E資格の例題を作っているJDLA認定プログラム
![E資格の例題を作っているJDLA認定プログラム](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3686535/2c61cd7c-9f61-783c-e6c7-f3cdec9da14c.jpeg)
E資格で必須となるJDLA認定プログラムの中にはオリジナルの例題を作って解かせてくれる講座もあります。
しかし私が見つけられたのは「[E資格ディープラーニング短期集中講座](https://ai-kenkyujo.com/ai-e-shikaku/)」だけだったので、もし例題を解いてみたいと思っている人はこちらのJDLA認定プログラムを受けてみてください。
動画で学
WEBサイトのデータ取得
# WEBサイトのデータ取得
### はじめに
スクレイピングで遊んでいた時に便利だなと思ったことをメモとして書き残しときます。#### find_next_sibling()
find_next_sibling() メソッドは、指定した要素の直後にある兄弟要素(同じ親要素を持つ要素)を取得します。“` py
from bs4 import BeautifulSouphtml = “””
First paragraph
Second paragraph
Third paragraph
“””
soup = BeautifulSoup(html, ‘html.parser’)
# 最初の
要素を取得
first_paragraph = soup.find(‘p’)# 最初の
要素の次にある兄弟
要素を取得
second_paragraph = first_paragraph.find_next_sibling(‘p’
競プロ用の開発環境を何も考えずに爆速で欲しければGitHub Codespacesを使おう
## はじめに
最近になってGitHub Codespaces最強じゃん、というのに気づき、競プロ環境もこれでいいんじゃない?と思って書く。
環境構築で面倒になって辞める人間が50%ぐらい(当社比)いるので、本格的な環境がこれだけ手軽に準備できるのはかなりいいんじゃないと思っている。
また仕組み上ブラウザで完結するので、PCはもちろんのことタブレット端末でも行けるはず。## 手順
まず手順から。
– 下記にアクセスをする
https://github.com/mo124121/atcoder-pypy-runtime-environment– create codespaceを押す(github accountがなければ先にsign upしよう)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522928/7db05441-e922-cea2-a85e-12a1fc71ae5c.png)
– 待つ
![image.png](https://qiita-image