- 1. 要素の削除・挿入 Python3編
- 2. Pythonでコンプガチャの期待値を求める
- 3. youtube-dlを利用した動画ダウンローダーを作成したので紹介
- 4. 配列のソート/反転/要素数のカウント/配列末尾への追加 Python3編
- 5. 配列の連結 Python3編
- 6. [Python]数字を扱うときの型の注意(整数型,文字列型)
- 7. 本当に最低限だけ覚えて一瞬で使い始めるPolars入門
- 8. Fast Whisperのpydoc version 0.10.0
- 9. paizaでのレーディングチェック(python3)【1724】
- 10. Pythonを使用したAzure Functionsでサードパーティー製のライブラリ導入方法
- 11. QRコードを生成したり読んだりしてみた
- 12. 炭酸イオンかどうかの判定アルゴリズムの作成(ログ)
- 13. 部分配列 Python3編
- 14. 配列の要素の入れ替え Python3編
- 15. はじめてのデータコンペを振り返ってデータ分析するのにまず何をすればいいのかまとめてみた
- 16. 【Python】「__main.py__」とは何か?このファイルから他のモジュールを実行する方法
- 17. Pythonのデコレーター(例:Flaskにおける`@app.route`の`@`)
- 18. 【Python】「if __name__ == ‘__main__’:」ブロックの意味とは?スクリプト実行とモジュール読み込み
- 19. Python のリストってやつは…
- 20. LangChainでChatGPTの返答をストリーミングレスポンスでSlackに返却する
要素の削除・挿入 Python3編
https://paiza.jp/works/mondai/array_primer/array_primer__elm_erase
忘れてしまったので調べて書いた。
要素削除には`pop()`か、`del`をつかう。
違いは、popは()内に(●−1)番目を書き、
delは、配列[●−1]とかく“`py
N,M = map(int,input().split())
A = list(map(int,input().split()))
A.pop(M-1) # この行は del A[M-1] でもOK
print(*A,sep=”\n”)
“`
次は挿入https://paiza.jp/works/mondai/array_primer/array_primer__elm_insert
要素挿入には`insert()`
下記のように使う。“`py
N,M,K = map(int,input().split())
A = list(map(int,input().split()))
A.insert(M-1,K)
print(*A,sep=”\n”)
“`
Pythonでコンプガチャの期待値を求める
# 概要
マクドナルドでとあるキャンペーンを行うようです。
**マクドナルドのハッピーセット「ハローキティ50周年」**
– 第1弾 12月15日(金)~12月21日(木) キティのぬいぐるみ**25種**
– 第2弾 12月22日(金)~12月28日(木) キティのぬいぐるみ**25種**
– 第3弾 12月29日(金)~ 第1弾・第2弾で登場した全**50種**https://www.mcdonalds.co.jp/company/news/2023/1207a/
50種全部ほしいのですが、どうやらランダムっぽいです。
そこで、コンプできる回数の期待値はどうなるか、気になってしまったので、コンプガチャと見立てて、Pythonでプログラムを作成していこうと思います。# コンプガチャの期待値を計算
まず前提として、確率は全部均等とします。また、順番も完全ランダムとします。
コンプガチャの期待値を求める式は以下の通りです。
“`math
コンプガチャ期待値=n\sum_{k=1}^{n} \frac{1}{k}
“`$\sum$(シグマ)に
youtube-dlを利用した動画ダウンローダーを作成したので紹介
# はじめに
Pythonの`youtube-dl`というライブラリを使用して、簡単にYoutubeなどの動画や音声をダウンロードおよび変換できるツールを作成したので紹介します。
https://github.com/MURAMASA2470/youtube_downloads
# youtube-dlとは
youtube-dlは、Python製のコマンドラインツールで、様々な動画共有サイトから動画や音声をダウンロードするためのツールです。YouTubeだけでなく、多くのサポートされているサイトからメディアをダウンロードすることができます。
### 公式リポジトリ
https://github.com/ytdl-org/youtube-dl### サポートされている世界中のメディアサイト
https://ytdl-org.github.io/youtube-dl/supportedsites.html# 使い方
## 環境
– Python 3.x
Python3以上で動作します。2系では動作しない為、バージョンアップしてください。
## インストール
当
配列のソート/反転/要素数のカウント/配列末尾への追加 Python3編
https://paiza.jp/works/mondai/array_primer/array_primer__array_sort
こないだコメントで教えていただいたのが早速(出力で)役に立った!
まったく便利だなぁ
答えを見たけど、下記を簡単に書いたものだったので省略“`py
N = int(input())
A = list(map(int,input().split()))
print(*sorted(A), sep=”\n”)
“`簡単すぎたので次の問題も
https://paiza.jp/works/mondai/array_primer/array_primer__array_reverse
“`py
N = int(input())
A = list(map(int,input().split()))
print(*reversed(A), sep=”\n”)
“`やっぱり簡単だったので次の問題も
https://paiza.jp/works/mondai/array_primer/array_primer__elm_count
“`p
配列の連結 Python3編
https://paiza.jp/works/mondai/array_primer/array_primer__array_join
extendで連結
“`py
N,M = map(int,input().split())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
A.extend(B)
for i in A:
print(i)“`
でも+でできるらしい。。。
“`py
N,M = map(int,input().split())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
Ans = A + B
for i in A:
print(i)“`
[Python]数字を扱うときの型の注意(整数型,文字列型)
# 本記事の概要
本記事は数字を扱うときに整数型,文字列型どっちで扱うのかを注意しない自分が困りますよという内容です.## 早めの結論
1. ソート順が異なります
1. 言語によって等価演算の扱いが異なります## 注意1: ソート順
“`Python
# リスト
int_list = [i for i in range(20)] # 整数型のリスト
str_list = [str(s) for s in range(20)] # 文字列型のリスト# ソート
int_list = sorted(int_list)
str_list = sorted(str_list)
“`ソート順確認
“`Python
print(int_list)
print(str_list)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# [‘0’, ‘1’, ’10’, ’11’, ’12’, ’13’, ’14’, ’15’, ’16’, ’17’, ’18’, ’19’, ‘2’,
本当に最低限だけ覚えて一瞬で使い始めるPolars入門
# はじめに
株式会社LITALICOでエンジニアをしています@yknoguchiです。
この記事は[『LITALICO Advent Calendar 2023』](https://qiita.com/advent-calendar/2023/litalico)10日目の記事です。ちなみに今日は僕の誕生日でもあります。めでたい!
来年もきっと誕生日駆動アドベントカレンダーをやると思います。## この記事の特徴
:::note info
この記事では、Polarsの詳しい使い方の解説は行いません。
:::この記事の目標は、以下のとおりです。
**「これを読むことで最低限のPolarsの使い方を覚え、とりあえずすぐにPolarsを触れる」**
QiitaにはPolarsの解説記事が上がっていますので、詳しい使い方はそちらをご確認ください。この記事ではあくまでPolarsを始める最初の一歩を想定しています。そのため、必要最低限の機能しか紹介していません。
## Polarsとは
Polarsとは、Pythonで大量のデータフレームを集計するときに使用するライブラリで
Fast Whisperのpydoc version 0.10.0
ローカルで動かしてみたかったけど、関数の引数がよくわからなかったので、large-v3とやらも試してみたかった。
ちなみに、whisperのGPU対応済んでたら、8G搭載GPUだったし、以下一行で問題なく動きました。(もちろんGPUの搭載メモリ少ないと問題起きるのだろうけど)
“`
pip install faster-whisper
“`計測はしてませんが、たしかに速いです。
“`
Help on package faster_whisper:NAME
faster_whisperPACKAGE CONTENTS
audio
feature_extractor
tokenizer
transcribe
utils
vad
versionCLASSES
builtins.object
faster_whisper.transcribe.WhisperModelclass WhisperModel(builtins.object)
| W
paizaでのレーディングチェック(python3)【1724】
先月ぐらいからpaizaでレーディングチェックをしてきましたがこの辺りが今の限界かな。。
python3
![paiza.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3638856/fa74764e-f7c3-8666-99f6-4ace0ecfaa6f.jpeg)
・Aランクの感想と気を付ける点
数学的、情報理論的基礎知識がちゃんと必要
やることさえ思いつけばコードは書けないことはないが
引き出しが少ないのでその思いつくが難しい
自分の数学知識は中学レベルも怪しいのでどうしても長考してしまうのと制限時間があるなかだとどうしてもあせっていい案が思い浮かばない
再挑戦で1週間ぐらい長考した問題もあった(やる気が少ないのもあるけど)タイムアウトさせないため、効率的な処理をさせるためにどうするかとか
再帰関数を使用しているならちゃんと無限ループに陥らないようにするとか・B,Cランク
やってやれないことはないけど
早解きが苦手、あとケアレミスが多い
例えば配列の中を2個づつ3個づつ見ていくみたいな処理
Pythonを使用したAzure Functionsでサードパーティー製のライブラリ導入方法
# かけた時間の割にとてもシンプルだったので共有
まず、Pythonを使用したAzure Functionsの作成方法はMicrosoftのドキュメントを参照。
https://learn.microsoft.com/ja-jp/azure/azure-functions/create-first-function-vs-code-python
次に、生成されたファイルの **「requirements.txt」** の中に導入したいサードパーティー製のライブラリの名前を記載するだけ。
例:numpy と scikit-learn を追加
“`requirements.txt
# DO NOT include azure-functions-worker in this file
# The Python Worker is managed by Azure Functions platform
# Manually managing azure-functions-worker may cause unexpected issuesazure-functions
num
QRコードを生成したり読んだりしてみた
# はじめに
こんにちは、チョコレートの入っているアドベントカレンダーを12/1に完食したさこもなです!# Wifi?Bluetooth? いいえ、カメラです
私がとある電子工作をしていた時、データを Raspberry Pi に送りたかったのですが、ラズパイにはカメラを接続していたので、それを活用できないかと考え、QRコードを利用することに決めました。# QRコードについて
日常において、QRコードを見ないことはないのではしょうか。
そんなQRコードと聞いたら、皆さんは何を連想しますか?
一般的には「URL」を取得するイメージが強いと思います。
だがしかし!実はURL以外にもテキスト形式など様々なデータを設定することができるのです。今回その際にQRコードの読み取りにつまづいたので、それをここにメモしていこうと思います。
ちなみに、QRコードに埋め込める情報量は、バイナリだと約3000バイトほどだそうです( -`ω-)✧
# Raspberry Pi でQRコードを読み取ってみる
サンプル用のQRコードを生成には「[QRのススメ](https://qr.quel.
炭酸イオンかどうかの判定アルゴリズムの作成(ログ)
## 目標
POSCARファイルから,炭酸イオンを含むどうかを判定するアルゴリズムを作成する.## 前準備
0-1.元素種C, Oを含むPOSCARファイルから,POSCAR.nnlistを作成し,CとOの結合距離の分布図を描く.
0-2.1.より炭酸イオンのCO間の結合距離の最大値を推定する.## 結合探索アルゴリズム
1.POSCARファイルが元素種C, Oを含む
2.POSCAR.nnlistにおいて,原子Cから0-2.のCO結合距離以内に,原子Oを3つ以上含む,中心原子Cが存在する.
####### 条件1:原子Cから原子Oに対して,結合手がちょうど3本生えているか? #######
3.2.の中心原子Cに対して,
1番近い原子がOであり,かつ2番目に近い原子もOであり,かつ3番目に近い原子もOである,中心原子Cが存在する.
4.2.の中心原子Cに対して,4番目に近い原子が
存在しない場合 → 条件1をクリア.
存在する場合 → 5.に進む.
5.2.の中心原子Cに対して4番目に近い原子が,0-2.で推定されるCO間結合の最大値より大きい.
→ 条件1をクリア.
部分配列 Python3編
https://paiza.jp/works/mondai/array_primer/array_primer__partical_array
私が書いたのはこれ
“`py
A,B,N = map(int,input().split())
S = list(map(int,input().split()))
for i in range(len(S)):
if i + 1 >= A and i + 1 <= B: print(S[i]) ``` ただ、rangeだと範囲指定ができるのでforループの部分を 下記のようにしてもよい どっちかと言うと下がいいかも ただ`range`関数の癖には注意かも ```py for i in range(A-1,B): print(S[i]) ```
配列の要素の入れ替え Python3編
https://paiza.jp/works/mondai/array_primer/array_primer__array_elm_change
私が書いたのはこれ
“`py
A,B,N = map(int,input().split())
S = list(map(int,input().split()))
for i in range(len(S)):
if i + 1== A:
tmp = S[B-1]
S[B-1] = S[A-1]
S[A-1] = tmp
breakfor i in S:
print(i)“`
でもよく考えたら、
べつにif文なくてもそのまま変えたらいいだけだった。。。
答え見てわかってしまったorz
はじめてのデータコンペを振り返ってデータ分析するのにまず何をすればいいのかまとめてみた
## この記事の内容
この記事では私自身の体験について「データ分析ってなにそれおいしいの」から
「データ分析やったことあります」になるまでの過程を振り返っています。その過程を著し読んで頂くことによって
データ分析を始めてみたい人へのとっかかりをつくることを目的としています。そのため技術的な紹介は控えめに、データ分析ってどんな流れでやるのだろうか
ということを想起させることを主眼において書いています。気軽な読み物として読んでいただいて
データ分析を始めることのサポートになればうれしいです。
#### 想定対象読者
・データ分析をやったことがない、これから始めようとしている人
・データ分析コンペに参加してみようと思っている人#### 想定読了時間
3分(流し見でOK)
## 準備
#### 実行環境として必要なもの
データ分析をするのに特別なものは不要です。
今これをみているPCがあれば最低限のデータ分析はできます。
会社のPCで実行するときは各企業のルール申請に則った手続きをしまし
【Python】「__main.py__」とは何か?このファイルから他のモジュールを実行する方法
# 概要
前回、`if __name__ == ‘__main__’:`ブロックについて解説しました。
[【Python】「if __name__ == ‘__main__’:」ブロックの意味とは?スクリプト実行とモジュール読み込み](https://qiita.com/Ryo-0131/items/68b3eaff7f0653457437)この`__main__`に似た概念として、`__main__.py`という特別なファイルがあるので、これも一緒に整理してみました。
## 前提
ディレクトリ構造は以下の通りです。
“`
my_package
├── __init__.py
├── __main__.py
└── module_example.py
“``__main__.py`のコードは以下の通りです。
“`__main__.py
def main():
print(“ここから始まるよ!!”)if __name__ == “__main__”:
main()
“`上記の`if __name__ == “__main__”:`って何し
Pythonのデコレーター(例:Flaskにおける`@app.route`の`@`)
# 1. デコレータの基本
デコレータは、他の関数を引数として受け取り、それを「ラップ」する新しい関数を返す関数です。この「ラップ」された関数は、元の関数に何らかの追加機能を提供します。### ネスティングされた関数(クロージャ)
Pythonでは、関数内で別の関数を定義することができます。この内側の関数は、外側の関数のローカル変数にアクセスできるため、クロージャとして機能します。デコレータでは、このネスティングされた関数(通常「wrapper」と呼ばれる)が、元の関数をラップして追加機能を提供します。
### デコレータの文法表現
デコレータを使用する際、`@`記号の後にデコレータ名を記述し、それをデコレートされる関数の定義の直前に置きます。この記法は、デコレータ関数を呼び出して返された「ラップ」された関数を、元の関数に適用するシンタックスシュガーです。
たとえば、以下のようにデコレータを使用します:
“`python
@my_decorator
def my_function():
…
“`これは以下のようなコードの短縮形です:
“`pytho
【Python】「if __name__ == ‘__main__’:」ブロックの意味とは?スクリプト実行とモジュール読み込み
# 概要
Pythonのコードで`if __name__ == ‘__main__’:`というIF文をたまに見かけますよね。Djangoなら`manage.py`で見ます。これってどういう挙動なんだ?って思ったのでサンプルコードで作って確認してみました。
## サンプルコード
“`module_example.py
def say_hello():
print(“もちろんこれも直接実行の時だよ!”)print(“これはいつでも表示されるぞ!”)
if __name__ == ‘__main__’:
print(“これは直接実行される時だけ表示されるよ!”)
say_hello()def sample_function():
print(__name__)
sample_function()
“`## スクリプト実行とモジュールとしての読み込みとは?
上記のスクリプトを実行すると以下が出力されます。
“`
python3 module_example.py
“`↓
“`
これはいつでも表示されるぞ!
これは
Python のリストってやつは…
# Python のリストについて,残念に思うこと。
### sum はできるのに…
リストについて,まともな操作は殆どできない。
“`python
my_list = list(range(1, 100001))
“`sum(), min(), max() ができるのは,信じられないくらい稀有なこと。
“`python
sum(my_list)
“`5000050000
mean(), std() そのほか,できるものがない。
“`python
mean(my_list)
“`—————————————————————————
NameError Traceback (most recent call last)
Cell In[4], line 1
—-> 1 mean(my_list)NameError: nam
LangChainでChatGPTの返答をストリーミングレスポンスでSlackに返却する
1. Slack Botにメンションしてメッセージを送る
1. まず、「Typing…」とスレッドに返信が来る
1. ストレーミングレスポンスで徐々に返信が更新されていく“`
import os
import re
import time
from typing import Anyfrom dotenv import load_dotenv
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
from langchain.chat_models import ChatOpenAI
from langchain.callbacks.base import BaseCallbackHandler
from langchain.schema import LLMResultCHAT_UPDATE_INTERVAL_SEC = 0.4
load_dotenv()
# ボットトークンを使ってアプリを初期化
app = App(
signing