- 1. DockerでJupyterHub環境を構築する。
- 2. ChatGPTを使った献立アプリを作ってみた
- 3. Djangoの概要を掴む
- 4. M1 Macbook Airにてdockerで開発環境構築した際のメモ
- 5. 開発ツールで確認されるようなソースコードが、Pythonのrequests.get()で取得できないときの対処法
- 6. 若手社員のAI部署での利用技術紹介
- 7. 歴史を作る時間 (paizaランク C 相当)
- 8. 話した言葉を文字起こしするアプリの作成
- 9. 【Python】sorted関数を利用して同じ組み合わせのクエリ実行(DBアクセス)を減らす方法
- 10. STEP: 1 アイドルグループ
- 11. ChatGPTを使ったクイズアプリを作ってみた
- 12. 友達のじゃんけんの勝敗判定のコードを効率化&わかりやすくしてみた
- 13. オシロスコープ上で動くゲームを作る方法
- 14. Raspberry Piでスマートロック作ってみた
- 15. 【Python×Twitter】TwikitでらくらくSNS運用
- 16. 色々な言語の Dictionary のキーの型の扱いについて調べてみた
- 17. ABC346 with Python(A~F)
- 18. 【生成AIアプリ100チャレンジ】(1)自然言語生成AIアプリ
- 19. 『モデルベース深層学習と深層展開』読み会レポート#0
- 20. 誕生日のパラドックスをpythonを使って検証してみた
DockerでJupyterHub環境を構築する。
# はじめに
開発メンバーが増えたので、jupyterhubを立ち上げてユーザーごとにjupyterlabできるようにしようかな、と。これは、作業の備忘録です。# 参考
いつものとおり、Qiita先輩方の情報で本件対応させていただきます。参考サイトは次のとおりです。場合によってはこの記事を読むよりも、以下を直接読んだ方がいいかもしれません。しかし、情報が古く最新の環境にマッチするかどうか保証できません。参考(1)
https://qiita.com/dyamaguc/items/db1da3084e36029f20cc
参考(2)
https://www.hinomaruc.com/install-jupyterhub-on-ubuntu22-10-using-docker/
参考(3)
https://qiita.com/noguhiro2002/items/99758ad66587f24c0ef2
## この記事では、2024年3月の jupyterhub/jupyterhub Doecker Hub の latestイメージをベースにして環境構築します。
ChatGPTを使った献立アプリを作ってみた
# はじめに
前回まではChatGPTを使ったクイズアプリを作成しました。
今回はその応用として、キーワードを入力したらそれに基づく献立を提案してくれる献立アプリを作っていきたいと思います!クイズアプリについては以下の記事でまとめています。
https://qiita.com/shake12/items/7a33cdc1bc105be16c3b# 事前情報
– OpenAI / ChatGPT 初心者
– 献立アプリは React + Flask で作成# 開発環境
– macOS Sonoma 14.4
– Visual Studio Code 1.87.2
– Python 3.10.6
– Flask 2.3.2# プロンプト準備
– [前の記事](https://qiita.com/shake12/items/ac770569db6fcc7169ad)で紹介した以下の形式で準備していく
`model`:今回は **gpt-3.5-turbo** を使用
`messages`:ChatGPTに投げる質問を記載する
– `role`:どこ
Djangoの概要を掴む
:::note
このブログの作者はフロントエンドにweightをかけ過ぎている者です(他の記事見ると察して頂けるかと)😇
温かい目で見守って頂けると助かります
:::# 1. 背景
業務でDjangoを使っているもののさっぱりな為なんとかしたいと思った為です。
ということで軽く概要から入ります。# 2. Djangoとは
https://www.djangoproject.com/start/overview/
Pythonのフレームワークです
## 歴史
当初、2003 年から 2005 年の間に、新聞のウェブサイトの作成とメンテナンスを担当するウェブチームによって開発されたそうです。
いくつかのサイトを作成した後、チームは多くの共通コードとデザインパターンを除外、再利用するようになりました。
この共通コードは、”Django” プロジェクトとして 2005 年 7 月にオープンソース化され、汎用のウェブ開発フレームワークに発展しました。## Djangoの由来
ジプシー・スウィングのギタリストでのジャンゴ・ラインハルト (Django Reinhardt) からと
M1 Macbook Airにてdockerで開発環境構築した際のメモ
### インストール方法
https://zenn.dev/imasaka0909/articles/e984e9e69c43cf### ビルド
`docker pull` した際に、ログインを求められることを知らず。
“`bash
$ docker pull python3
Using default tag: latest
Error response from daemon: pull access denied for python3, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied
“``docker login` を実行
“`bash
$ docker login
Authenticating with existing credentials…
Login Succeeded
“``docker compose up -d –build` を実行
開発ツールで確認されるようなソースコードが、Pythonのrequests.get()で取得できないときの対処法
# はじめに
ブラウザの開発ツールから確認するかぎりでは、ソースコードが確認できるwebページ。
しかし、いざ`python`の`requests.get()`でページのソースコードを取得しようとしてもソースコードを得られない場合があります。
本記事では、このような場合の対処法のひとつを示します。# 解決策
**`requests.get()`の引数`headers`にUser-Agentを指定する**
“`python
import requests
url = “” # webページのurl
response = requests.get(url, headers={“User-Agent”: “”})
“`
User-Agentの指定の仕方の一例は[こちら](https://yuki.world/python-requests-useragent/)。
自分の場合は、User-Agentに空文字列`””`を指定しても解決しました。# User-Agentとは
webサイトを閲覧するためのブラウザ情報やOS情報。
これを指定することで、ブラウザの開発ツールで確認されるよ
若手社員のAI部署での利用技術紹介
## はじめに
はじめまして、私は2022年に新卒としてBIPROGY株式会社に入社した高場です。
今回は若手社員の仕事紹介として記事をまとめます。## 組織の紹介
私が所属している組織は AI 技術部と言い、主に AI を用いたサービスの検討等を行っています。
また、企業や研究機関と協力して共同研究を行うこともあります。
その中で私は主に自然言語処理や時系列データを扱う案件を主に担当しています。## 案件紹介
### 全体概要
自然言語処理を取り扱っている案件としては、学校教育への支援システム(PoC)などがあり、時系列データの取り扱っている案件としては、 **国立研究開発法人科学技術振興機構(JST)** と協力して行っている **個人及びグループの属性に適応する群集制御**[^1]があります。今回の記事では、時系列データを取り扱っている群集制御(群集マネジメント)に関する取り組みについて簡単紹介にします。
### 群集マネジメントとは
群集マネジメントとはざっくり言うと **集まった人々の安全・安心と快適な徒歩移動を支え、人々の満足度を高める予防安全活動*
歴史を作る時間 (paizaランク C 相当)
https://paiza.jp/works/mondai/query_primer/query_primer__history
タプルのやり方を完全に忘れてたので、調べつつ対応しました
まあ、中身としてはうーんnamesは必要ない気がします。。。
一応出したけど。
historiesは内包表記ができなさそうなので、普通に。タプル化して配列に入れてます。
タプル化したやつをどうやっていれるかってことでちょっと迷ったけども。その後は、sortedしたやつをそのままプリントするだけですね。
クエリじゃない問題だと思ったのですが案の定でした。“`py
N,K = map(int,input().split())
names = {input() for _ in range(N)}
histories = []
for i in range(K):
event,charge = input().split()
histories[i] = (int(event),charge)for year, name in sorted(histories):
p
話した言葉を文字起こしするアプリの作成
今回は、pythonで、話した言葉を文字起こしするアプリを作成しました。
これは、タイピングが苦手な人や、紙のメモをパソコンにそのまま入力したいときなどに役立ちます。https://github.com/mt1-m/voice_memo
# 使用方法
zipファイルをダウンロードして解凍したら、voice_memoディレクトリで下記を実行して必要なライブラリをインポート、
“`
pip install -r requirements.txt
“`
できたら下記を実行します。
“`
python voice_memo.py
“`
## 実行結果
![実行結果1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3426433/f37203a1-ad41-3585-1a99-50f12abf4a89.png)
このように、話した言葉を文字起こししてくれます。頑張って発音すれば英語もいけます。終了するときは、’q’キーを押します。# 実装方法
今回は、マイク入力と文字起こし共に、speech
【Python】sorted関数を利用して同じ組み合わせのクエリ実行(DBアクセス)を減らす方法
# 概要
`sorted`関数を利用することで、 DBアクセスする回数を減らすことができましたので紹介します。## サンプルコード1
`sorted`関数とは、イテラブル(リスト、タプル、辞書など)をソートした新しいリストを返す関数。
以下、シンプルなサンプルコードです。“`py
def sort_and_tuple(input_list):
sorted_tuple = tuple(sorted(input_list))
return sorted_tuplemy_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = sort_and_tuple(my_list)
print(result) # (1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9)
“``sort_and_tuple`関数は、入力としてリストを受け取り、そのリストをソートした後、タプルに変換して返します。このように、`sorted`関数と`tuple`関数を組み合わせることで、リストの要素をソートし、その結果を変更不可
STEP: 1 アイドルグループ
今週前半はAWSの試験があり、直前だったので一旦お休みしてました。
https://paiza.jp/works/mondai/query_primer/query_primer__idle_group
“`py
N,K = map(int,input().split())
A = {input() for i in range(N)}
for _ in range(K):
command = input().split()
if command[0] == ‘handshake’:
for name in sorted(A):
print(name)
elif command[0] == ‘leave’:
A.remove(command[1])
else:
A.add(command[1])“`
久しぶりだったのでちょっとど忘れしたりして長引いてしまいました。キー無しの辞書は{}でできて、
削除や追加はremove,addでできる。
順序はもちろんsortedで。
ChatGPTを使ったクイズアプリを作ってみた
# はじめに
ChatGPTを使ったクイズアプリを作るにあたって、
前回まではChatGPT APIの呼び出し方について紹介したので今回は実際に完成したアプリを紹介していきたいと思います!API呼び出し編については以下の記事でまとめています。
https://qiita.com/kitaji12/items/ac770569db6fcc7169ad# 事前情報
– OpenAI / ChatGPT 初心者
– クイズアプリは React + Flask で作成# 開発環境
– macOS Sonoma 14.4
– Visual Studio Code 1.87.2
– Python 3.10.6
– Flask 2.3.2# プロンプト準備
– [前回の記事](https://qiita.com/kitaji12/items/ac770569db6fcc7169ad)で紹介した以下の形式で準備していく
`model`:今回は **gpt-3.5-turbo** を使用
`messages`:ChatGPTに投げる質問を記載する
– `rol
友達のじゃんけんの勝敗判定のコードを効率化&わかりやすくしてみた
## 自己紹介
Python大好きwhile-true-ifです。
## 対象者
– Python好きな人
– Python初心者
– Pythonでじゃんけんのコンソールアプリを作りたい人## この記事を読む前に
– この記事では効率化という言葉が使われます。ここでいう効率化とは、「コードを書く効率」です。処理時間ではありません。
– あくまでもこの記事は2人のじゃんけんに特化した勝敗判定となっています。3人以上は想定していません。
– この記事に出てくる「よりよいコード」とはだいたい同じくらいの処理時間(差が1000ms以内)であり、コードが短くなることを意味します。## じゃんけんとは
**グーとチョキとパーがあります。**
下の表は左側のグー・チョキ・パーが自分の出した手で、上側のグー・チョキ・パーが相手の出した手です。
グー チョキ パー オシロスコープ上で動くゲームを作る方法
# 概要
オシロスコープを使って画像や動画を描いてみたい!
と思った方に向け、この記事を書いていきます。
最終的には以下の画像のように、絵をオシロスコープ上に描くことができます。![RigolDS3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3756939/10efc3b0-a319-bd16-36f9-6e2a8af61a68.png)
# 方法
## 1 用意するもの
– オシロスコープ
– Pythonの開発環境
– National Instruments (NI USB-6212)
– コントローラ(JC-U3613M)### 開発環境
– Python3.8.6
– ライブラリ
– nidaqmx
– numpy
– matplotlib
– pygame
– time
– Image
– 使用したソフト
– VScode editor“`
import numpy as np
import matplotlib.pRaspberry Piでスマートロック作ってみた
# はじめに
大学の授業の最終課題でRaspberry Pi3 modelAを使ったスマートロックを作ったのでまとめていきます。作った理由としては鞄からいちいち鍵を出すのが面倒というのと、家族友人が泊まりに来た際に鍵を共有したかったからです。
初学者のため拙い説明が多くなるかと思いますがご了承ください。
# 使ったもの
1. ハード
– Raspberry Pi3 modelA
– サーボモータ(SG92R)
– タミヤ ユニバーサルアームセット
– 結束バンド
– その他テープ等
1. ソフト
– Python3
– Bolt for Python
– iOS Shortcut
1. 外部サービス
– Slack
# Slack APIの設定
今回はSlackに入力された文章をトリガーにラズパイが鍵を操作するようにしています。そのため、まずはラズパイでSlackを監視できるようにSlackアプリを作ります。
[Bolt for Pythonの入門ガイド](https://slack.dev/bolt-python【Python×Twitter】TwikitでらくらくSNS運用
TwitterをPythonで運用したい人向けの記事です。
Python初心者の方でもコードをコピペして実行できるような記事を心がけます。:::note
この記事では、Python3.12.2での動作確認のみ行なっています。
Twikitのアップデートで動作しなくなる場合もありますのでご注意ください。
:::# Twikitの導入
まず、今回メインで使用するTwikitについて説明します。
Twikitは、TwitterのAPIを簡単に操作できるようにするライブラリです。
Pythonで有名なtweepyと違うのは、APIキーなどの発行が不要なことです。
tweepyだと開発者ポータルから申請する必要がありますが、
twikitなら必要なのはユーザー名とパスワードだけです。https://github.com/d60/twikit
twikitはpipを使ってインストールできます。
“`:Terminal
pip install twikit
“`# Twikitの使い方
簡単な英語とPythonの文法が理解できればすぐに使えます。## ログイン
Twik色々な言語の Dictionary のキーの型の扱いについて調べてみた
Dictionary や object のキーに複数の型を指定した場合、どういった扱いになるのかが非常に気になったので、自分の知っている範囲の言語で試してみました!
# Python の場合
“`python:Python
a = {}
a[1] = “int”
a[1.0] = “float”
a[“1.0”] = “str”
# => {1: ‘float’, ‘1.0’: ‘str’}
“`int と float は同一視されるようです。Python では `1 == 1.0` が成立するので、これは合理的な気もしますね。使う側は非常に安心できます。他にも、True, False, Fraction, Decimal なども同一視されるようです。
> Numeric values that compare equal have the same hash value (even if they are of different types, as is the case for 1 and 1.0).
https://docs.python.org/3.5/lib
ABC346 with Python(A~F)
今回は、初めてのQiita記事投稿がてら、ABC346のA-F問題までの解説をPythonで書いてみました。誰かのお役に立てれば幸いです。。。
# A – Adjacent Product
## 問題
$N$ 個の整数 $A=(A_1,A_2,\cdots,A_N)$が与えられます。
また、$B_i = A_i \times A_{i+1} (1 \leq i \leq N-1)$ と定めます。
$B_1,B_2,\cdots,B_{N-1}$ をこの順に空白区切りで出力してください。https://atcoder.jp/contests/abc346/tasks/abc346_a
## 考察
隣り合っている要素同士の積を計算してリストに代入、それを答えとして表示する。## コード
“`python:A.py
N = int(input())
A = list(map(int, input().split())
B = []
for i in range(N – 1):
B.append(A[i] * A[i + 1])
print(*B)
“`
#【生成AIアプリ100チャレンジ】(1)自然言語生成AIアプリ
# 公開中サイト
https://ai.nuevo.jp/
# 開発環境
| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
# PYTHONとDjango環境
生成APIが流行しているので、PYTHONとDjango環境でアプリを作成してみた。
最初のアプリなのでプロンプトを送ったら、プロンプトが戻ってくるだけのシンプルなものです。
基礎中の基礎ですけれども、プロンプトを送ってレスポンスをもらうだけですが、いろいろと大変だった。https://docs.djangoproject.com/ja/5.0/
それと、PHPエンジニアでPYTHONはまだまだ経験不足
『モデルベース深層学習と深層展開』読み会レポート#0
# 概要
– オンラインで開催している[『モデルベース深層学習と深層展開』読み会](https://majime-ni-study.connpass.com/event/)で得られた知見や気づきをメモしていく
– ついでに、中身の理解がてらJuliaサンプルコードをPythonに書き直したコードを晒していく
– 自動微分ライブラリにはJAXを使用する# 第0回
## 大まかな内容
– モデルベース深層学習と深層展開の概説
– 上記がどんな事に応用可能か
– 微分可能プログラミングとしての実現方法について
## 議論になったこと
### 1.1.1節 あたり
– モデル駆動アプローチの実例
– 制御だと運動の法則等からモデリングする
– 通信だと、電波や媒質(空気など)を支配する法則からモデリング
– アンテナなど部品は物理系の法則
– 通信だと周波数領域のパラメタの同定に学習要素があるかも
– 図1.1を眺めながら
– 真ん中の図はNNの重みも学習可能パラメータでは?
– おそらくそう。NN以外の計算に埋め込んだパラメ誕生日のパラドックスをpythonを使って検証してみた
# 概要
**誕生日のパラドックス**とは、「同じ誕生日の人がいる確率が50%を超えるのは、何人集まれば良いか?」という問題において、結果が直感と反しているというパラドックスです。
確率を計算すると以下の結果になります。
– 40人の場合は、`約89.12%`
– 23人の場合は、`約50.73%`個人的にも納得できないので、Pythonを使って検証をしていきたいと思います。
# 計算式
同じクラス内に1組以上の誕生日が一致する確率は以下の式から導き出せます。(nは1クラスの人数)
“`math
p(n) = 1 – \frac{365!}{365^n(365-n)!}
“`# コーディング
## 関数①:計算式を基にコーディング
まずは、計算式を基にプログラムを書いてみました。
“`python
def birthday_paradox_prob_calc(n: int) -> float:
”’
誕生日のパラドックスの計算を行う
Args:
n (int): 人数
Returns:
f関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた