- 1. はじめに
- 2. Pandas(パンダス)について
- 2.1. Pandasを使うメリット
- 2.2. Djangoとは、Pythonのフルスタックフレームワーク
- 2.2.1. paizaラーニング問題集「3Dプリンタ」を解いてみた
- 2.2.2. 感動のショートストーリー「マトリックスBの謎」。フルバッチ学習のエンジニアリング。
- 2.2.3. PythonでのLiteral型エラー解決方法まとめ:mypyエラーを解決するためのアプローチ
- 2.2.4. von Bertalanffy式をタイムステップごとに簡便に逐次計算するための式
- 2.2.5. ABC377 B – Avoid Rook Attack
- 2.2.6. [LLM]ノーコードという名の技術負債
- 2.2.7. 初心者向け!GCPでParquetファイルをDataflowを用いてBigQueryにインポートする方法
- 2.2.8. pandasとPolarsでよく使う23選
- 2.2.9. 【Python】素人が素因数分解のアルゴリズムを作ってみた
- 2.2.10. DJproject_備忘録_2
- 2.2.11. Transformers を使って、BERT のファインチューニングをする
- 2.2.12. 眠気を検知!現実にカムバック、居眠り防止アプリを作成!
- 2.2.13. 「Pythonによる化学シミュレーション入門」をやってみたよ5~ブラウン運動とランジュバン方程式~
- 2.2.14. BERTモデルを使った日本語テキスト感情分析プログラムの実装
- 2.2.15. DIパターン × Factoryパターン 〜柔軟なオブジェクト生成の実装
- 2.2.16. DICOM画像をPythonで可視化しようとしたら一工夫必要だった話
- 2.2.17. 境界層方程式による境界層内の速度分布の算出
pythonでwatson discoveryのプロジェクトを作成
“`python
# %%
from ibm_watson import DiscoveryV2
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator# %%
apikey=’APIKEY’
version=’VERSION’
service_url=’SERVICE_URL’
authenticator = IAMAuthenticator(apikey=apikey)
discovery = DiscoveryV2(version=version, authenticator=authenticator)
discovery.set_service_url(service_url=service_url)# %%
name = ‘NAME’
type = ‘TYPE’
response = discovery.create_project(name=name, type=type).get_result()
print(response)
“`
プログラミング歴1週間が説明するPythonのPandas講座
はじめに
学習のアウトプットとして記載しています。誤りがあれば訂正します。
大目に見てくださいPandas(パンダス)について
Pandasとは、Pythonというプログラミング言語でデータ分析を行う際に便利なライブラリの一つです。
ライブラリとは、エクセルのSUMやAVGのようなそれぞれ専門に特化した関数が大量に詰まった超お得パックです。
つまりPandasは分析をするときにデータを整理してくれる、お得パックということです。Pandasを使うメリット
1.色んな型のデータを1つの表形式のデータで扱えること
例えば以下のような情報を含むデータがあるとします
名前(文字列型):創る
年齢(整数型):100
生年月日(日付型):1924-11-01
身長(浮動小数点型):120.5
免許はあるか(ブール型):Falseこのような種類の違うデータ型を同じデータフレーム(表形式のデータ)で表現することができます。
ようはエクセルです(?)
| 名前 | 創る|
|:-:|:-:|
|
はじめてのDjangoまとめ1
Djangoについて
今回は、DjangoでCRUDのアプリを作成してみました。
色々と整理をしたので、こちらにまとめます。Djangoとは、Pythonのフルスタックフレームワーク
まず、DjangoはPythonベースのフレームワークです。
他にもFlaskやFastAPIがありますが、
これらに比べると、大規模アプリ作成に向いています。Rubyで例えると、Ruby on Railsが該当します。
Ruby on Railsは、MVCフレームワークのアーキテクチャですが、
Djangoは、これに似ていて異なる、MVT(Model、View、Templete)です。昨今では、GAFAがPythonを使用していたことをベースに、
プログラミング言語の使用ランキングでも上位に君臨していますが、
日本の開発現場でも、Pythonを選択されることが非常に増えてきました。Pythonは、データ分析やAI開発、スクレイピング等、
様々なことができるように、ライブラリも豊富ですが、
フレームワークを使用しての、アプリ開発でも多く使用されています。今回のD
paizaラーニング問題集「3Dプリンタ」を解いてみた
https://paiza.jp/works/mondai/b_rank_skillcheck_archive/3d_printer
▼考え方
この問題を解くために私が考えた内容1.~3.を以下に示します。
[概要]
z軸方向の下から1段ずつ処理します。入力される立体データはリストxyzに格納します。X=3,Y=3,Z=3のときの1段分の入力データと座標系(x,y,z)の関係を示します。▽入力データ
“`
3 3 3
###
##.
#..
—
以下略
“`
▽座標系(x,y,z)の関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881331/01c1216e-e271-eb86-b5ab-6376aa9abab4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881331/333e22b7-2e85-c801-efe2-8f388d795925.png)
感動のショートストーリー「マトリックスBの謎」。フルバッチ学習のエンジニアリング。
#### 感動のショートストーリー タイトル: 「行列Bの謎」
1980年、東京の静かな夜、プログラマーの翔太は、自分の小さなオフィスで NEC PC8001MK2 というコンピュータで、一心不乱にコードと向き合っていた。クライアントから与えられた課題は、3つの行列、A、B、Cに関するもので、行列Aと行列Bの積が行列Cになるように行列Bを最適化する、というものだった。数学的に精通している人には普通の課題だが、翔太には「行列B」が謎に包まれたように感じられていた。
ある夜、彼はふと、ひとつの疑問を抱いた。最適化された行列Bが行列Aと行列Cの関係を正確に再現できるなら、行列Aと行列Cのそれぞれの行ベクトルについても、その再現性が期待できるのではないか?彼は小さくつぶやいた。「もしこれがうまくいけば…行列Bには、AとCの関係が深く刻み込まれていることになるな。」
問題解決への新たな希望を胸に、翔太はさらにコードを調整し、エポック数を増やして行列Bの最適化を進めていった。フルバッチ学習で効率よく収束させるよう工夫を凝らし、少しずつロスが減少していくのを確認するたびに、彼は問題が解けつ
PythonでのLiteral型エラー解決方法まとめ:mypyエラーを解決するためのアプローチ
## はじめに
Pythonでは厳密な型定義を実施することが不可能であり、完全な型安全性を確保することはできません。しかし、型ヒントを用いることである程度の型安全性を確保することができます。型ヒントの一つである`Literal`を用いた際に`mypy`のエラーに遭遇し、その解決にすこし手間取ったので備忘録として残しておきます。## 問題となるコード
“`python
from typing import Literalvar_type = Literal[“apple”, “orange”]
def func(var_type: var_type) -> None:
print(f”This is the {var_type}”)fruit = “apple”
func(fruit) # mypyエラーが発生
“`
上記のコードを`mypy`でチェックすると以下のようなエラーが発生します。
“`python
error: Argument 1 to “func” has incompatible type “str”; expected “Litera
von Bertalanffy式をタイムステップごとに簡便に逐次計算するための式
## 背景
先日、とあるPythonのライブラリを見ていたところ、von Bertalanffy式についての記述でしばし悩んだので備忘録がてら書き残しておきます。### 前提
von Bertalanffy式 (VBGF)とは主に生物(特に魚類など)の成長をモデル化するために用いられる式で、以下のような形をしています。
“`math
L(a) = L_\infty – (L_\infty – L_0)e^{-ka}
“`
この式は生物のエネルギー収支に関する仮定を元に導出することができ、
– $ L(a) $はとある齢$ a $における体長
– $ L_0 $は$ a = 0$における体長
– $ L_\infty $は齢$ a $ が$ a \rightarrow 0 $のとき、体長が漸近する値
– $ k $はgrowth coefficientといい、成長率そのものを表すパラメータではないのですが、ざっくりと、生物がどれくらい急激に大きくなるかを制御するためのパラメータです。#### 参考
– [ベルタランフィー成長式の理論的導出](https://m-kiyota.
ABC377 B – Avoid Rook Attack
## はじめに
10/26開催のABC377のB問題の復習です。https://atcoder.jp/contests/abc377/tasks/abc377_b
## 問題文の概要
チェスボードのような$8 \times 8$マスの盤上にあらかじめ置かれているルークに取られないようにコマを配置できる場所を出力する。## 自分の回答
最近はB問題なら最初に思いついた方法で強引に解くようになりました。
まず最初に閃いたのは、左上からマスを全部ループさせて、縦横ともにルークがいなければ$+1$する。という方法でした。“`python:ABC377_B
m = []
ans = 0
for _ in range(8):
m.append(input())ng_i = []
ng_j = []
for i in range(8):
for j in range(8):
if m[i][j] == “#”:
ng_i.append(i) # 横のルークの位置を格納
ng_j.append(j) # 縦のルークの位置を格納for i
[LLM]ノーコードという名の技術負債
## はじめに
これを読んでいるのはおそらくほとんどがエンジニアだと思う。
だからこそ言う、LLMを使ったプロダクトは負債にしかならない。
その根拠を挙げていこう
## LLMは所詮関数である
OpenAIなどのAPIを叩く場合は厳密にはHTTPリクエストだがそこは置いておいてコードで見れば関数の一部でしかない。
関数とか何なのかちゃんと考えてほしい。
関数はあくまでも引数を関数内で定義したアルゴリズムを通してアウトプットをするものだ。
ノーコードであるフローはknowledgeBaseなどの機能があるとは言え、あくまでも関数の繋ぎ合わせでしかない。
改めて冷静に考えて欲しい。
関数を作るだけに本当にノーコードが必要か?
## 関数単体でのアウトプットが品質保証されない
今はもしかしたら解決したいかもしれないがDifyなどは関数をフローで繋げて動作することを目的としているから基本的に細かくユニットテストなどは書けない。
普通に考えて見て欲しい。
「複雑なアルゴリズムの関数をテストなしで使うバカがいるか?」
Difyであろうとあくまでもプロンプトを入れて実行
初心者向け!GCPでParquetファイルをDataflowを用いてBigQueryにインポートする方法
本記事は初学者向けのDataflowとCloud Functionsを活用したパイプライン構築に関する内容です。Dataflowを使うことになった経緯や使い方、構築時のポイントやエラーハンドリングについて詳しく解説していきます。
—
# GCSに配置されたParquetファイルを自動でBigQueryにロードするパイプラインの構築 – 初心者向け解説
## はじめに:ビジネス背景とパイプライン構築の目的
あるプロジェクトで大量のデータをParquetファイル形式でGoogle Cloud Storage(GCS)に定期的にアップロードし、それをBigQueryに蓄積する必要がありました。毎回手動でデータをインポートするのではなく、パイプライン構築によって自動化したいと考え、Cloud FunctionsとDataflowを用いたパイプラインの構築を進めました。ここではその実装の流れを解説し、Dataflowを初めて使う方向けにナレッジを共有します。
## 技術選定:DataflowとCloud Functionsを選んだ理由
パイプラインを実装するにあたり、GCSにファ
pandasとPolarsでよく使う23選
次の記事を少しアレンジしてPolarsでもやってみました。
https://qiita.com/tapitapi/items/fdd86439840dfa96c312
いろいろな書き方がありますが、修正しやすさとわかりやすさで選びました。
なお、結果は完全に同じではないです。
出力にはわかりやすいように改行を追加しています。## データとモジュールの準備
“`python
from pathlib import Path
from dataclasses import make_dataclass
import pandas as pd
import polars as pldct = {
“data”: [
[“2024-01-04”, “A”, “家電”, “電球”, 4, 1000, 4000],
[“2024-02-06”, “A”, “家電”, “電子レンジ”, 1, 50000, 50000],
[“2024-03-10”, “A”, “家電”, “テレビ”, 1, 150000, 150000],
【Python】素人が素因数分解のアルゴリズムを作ってみた
## 素人が素因数分解のアルゴリズムを作ってみた
タイトル通りです。知識をそこまで持たない私が何かしらアルゴリズムを作ろうとし、対象にしたのが素因数分解でした。
このアルゴリズムを作るにあたって私は、訓練のためなるべく情報を収集しないというルールを課しています。つまり、この記事のアルゴリズムは最適化や効率よりも理解しやすさに重きを置いているわけです。
そういうわけなので、実用性のある素因数分解のアルゴリズムを探している方はwikipediaや他の記事を参考にすることをおすすめします。あくまでこの記事は初心者でもフローが理解できる素因数分解のアルゴリズムを紹介するといった趣旨です。
また、アルゴリズムを作ることが目標だったので、特にこれを改良するというつもりもありません。動かない場合はアレですが、そうでない指摘はご容赦を。## さっそくコードを載せる
~~~python:prime.py
import mathdef calcPrime(n:int) -> [int]:
p=[1 for i in range(n+1)]
p[0],p[1]=0,0
DJproject_備忘録_2
## 2024-10-31
– Unityからプレイヤーを引っ張ってきた。
“`
using UdonSharp;
using UnityEngine;public class DebugPlayer : SuperPlayer
{
public bool DebugPlayerReset()
{
myName = “DebugPlayer”;return true;
}public override string ReturnMyName()
{
return “DebugPlayer”;
}public override string ExecuteMain()
{
Debug.Log(“\n==== Debug ExecuteMain =============
Transformers を使って、BERT のファインチューニングをする
# Transformers を使って、BERT のファインチューニングをする
https://huggingface.co/docs/transformers
## はじめに
はじめまして。私は大学院生です。
この記事では、Transformers を使って、BERT のファインチューニングをします。(主に、研究室の後輩向けに書いていますので、極力簡素化しています。ご了承ください。)
この記事が、「Transformers を使ったファインチューニングの方法の参考になった」と思っていただけるように書かさせていただきます。
—
より簡素化できる案などがあれば[コメント](#comments)をしていただけると幸いです。
—
https://qiita.com/Natu_ja/items/4ae2b5d178389336d078
https://qiita.com/Natu_ja/items/b1fc52e20b0bdd8d5b14
類似記事もありますので、是非こちらもご覧になってください。
## 事前準備
### 用語解説
https://qiita
眠気を検知!現実にカムバック、居眠り防止アプリを作成!
# 眠気を覚ましたい!
私は仕事中や勉強中に眠いときに、眠気を覚ましたいなと思うことがよくあります。今はコーヒーを飲んでいますが、学生の頃、授業で居眠り中、先生に声をかけられたときが1番目が覚めたので、今回はその体験をアプリで再現したいなと思います。
![スクリーンショット 2024-10-31 21.25.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682615/b34f5bca-4707-37a8-9cda-19f2590aac68.png)
# 作成したもの
PCのインカメで自分の顔を映し、目を閉じたら音声が流れて起こされるアプリを作成しました。入力した名前が〇〇の場合、「そこの寝ている〇〇さん、起きなさい」という音声が流れます。
「Pythonによる化学シミュレーション入門」をやってみたよ5~ブラウン運動とランジュバン方程式~
この記事は[現代化学](https://www.tkd-pbl.com/news/n184.html)(東京化学同人)の2022年4月号から2024年3月号まで連載された安藤耕司先生の「Pythonによる化学シミュレーション入門」を読んでやってみた記事です。詳しい内容は上記の「Pythonによる化学シミュレーション入門」をご参照ください。今回は、2023年1月号のブラウン運動とランジュバン方程式の内容です。
# ランダムウォークからブラウン運動へ
最初に今回の内容を説明します。[以前の記事](https://qiita.com/chemweb000/items/21a318aa775462cee5e3)でランダムウォークについて解説しました。ここでは、ランダムウォークで拡散現象をおおよそ再現できることを見てみました。ここで、ランダムウォークにおいては粒子の位置は乱数によってのみ決定されています。しかし、実際のブラウン運動では粒子は周囲の媒質から力を受けて運動しています。そこで、ランダムウォークでは乱数として考えていなかった粒子の運動を、ブラウン運動の物理的なモデルに置き換えて、実際の
BERTモデルを使った日本語テキスト感情分析プログラムの実装
## はじめに
SNSの投稿やカスタマーレビューなのユーザーの投稿の感情分析の信頼度をどうやって高められるか?を検証したいと思ったのでプログラムを作成することにしました。
最終的には、LLMと連動した感じで動かしたいなと考えているのですが、今回は、複数のBERTモデルを組み合わせて日本語テキストの感情分析を行う検証プログラムを実装してみました。
テキストがポジティブ、ネガティブ、中立のどの感情を持っているかを分析し、その強度も評価できるようにしてみました。
## ソースコード
gistで公開しています。検証するために作成したコードなので適当です。https://gist.github.com/JFK/9514e4239665ff2aa7616e3c09a7ad38
## プログラムについて
1. **マルチモデルアプローチ**
– 3つの事前学習済みBERTモデルを使用
– モデル間で判定が分かれた場合の特別処理
– 高確信度の結果を優先2. **詳細な感情分析**
– ポジティブ/ネガティブ/中立の判定
– 感情の強度評価(St
DIパターン × Factoryパターン 〜柔軟なオブジェクト生成の実装
## はじめに
DIパターンとFactoryパターンの組み合わせは、柔軟でテスト可能なアプリケーションを構築する上で重要なデザインパターンです。この記事では、Pythonでの実装例を通じて、両パターンの効果的な使い方を解説します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/e77479fc-1a9d-4fda-4516-376b8d61d8bf.png)
## なぜDIパターンとFactoryパターンを組み合わせるのか?
### 解決したい課題
1. オブジェクトの生成と使用の分離
2. テスト容易性の向上
3. 依存関係の明確化
4. 実装の切り替えを容易にする### メリット
– 依存関係の制御が容易になる
– テストの書きやすさが向上する
– コードの再利用性が高まる
– 実装の差し替えが容易になる### デメリット
– 初期学習コストが高い
– 小規模なプロジェクトでは過剰な可能性がある
– ボイラープレートコードが増える## 実装例
以
DICOM画像をPythonで可視化しようとしたら一工夫必要だった話
# はじめに
最近、DICOMのファイルを機械学習する必要があって色々調べていたらPythonでは簡単に読み込むライブラリがあるとのことでした。
Pillowを使うと画面に表示ができるのですが、そこから少し加工しようと思ってOpenCVに入れるとなんかおかしい…これは、そんなライブラリでやりたいことができるようになるまでの物語である。
# 使用環境
– Python 3.10.x
– pydicom 2.4.4
– Pillow(PIL) 9.0.1
– OpenCV(cv2) 4.10.0# 使用データ
日本放射線技術学会画像部会のデータを使用します。
# 一般的なやり方
ネットで検索すると以下の方法が紹介されていました。
“`py:
import pydicom
from matplotlib import pyplot as pltds = pydicom.read_file(“JPCLN0xx.dcm”)
img = ds.pixel_arrayplt.imshow(im
境界層方程式による境界層内の速度分布の算出
## モチベーション
流体力学を学ぶ者として、境界層方程式は使えないとでしょ(素人
## 最終アウトプット
* 境界層内の速度分布(この記事)
* 境界層内の温度分布(今後)
* マッハ数による変化(今後)## 1. 境界層方程式とは?
境界層方程式を語る前にまずはナビエストークス方程式を軽くおさらい。
ナビエストークス方程式は流体の運動を記述するスーパーな方程式だが、取り扱いに大きな制約がある。
非圧縮性NS式(Navier–Stokes equations)
$$ \begin{align}
\frac{\partial u}{\partial t}+u\frac{\partial u}{\partial x}+\nu \frac{\partial u}{\partial y} = -\frac{1}{\rho}\frac{\partial p}{\partial x}+\frac{\mu}{\rho}(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2})\\
\en