- 1. 【python】スライスを使って文字列を反転させる
- 2. SageMaker Studioでカスタムイメージが起動しない
- 3. Venv環境でのライブラリインストール時の setuptools < 40.8.0 (from versions: none) エラー対処法
- 4. ロジスティック回帰を復習
- 5. 時系列モデルを勉強していくぜ!~時系列モデル構築とアンサンブル編~(Signate引っ越し需要予測17位解法)
- 6. Flowise の API を Python でストリーミング
- 7. ゼロ知識証明フレームワーク
- 8. PythonでExcelファイルをjson形式へ変換
- 9. Spotify APIを使ってアルバムの曲を分析してみた
- 10. Databricks における spark_catalog というオブジェクトに関する調査
- 11. イーロンマスクのパクリ疑惑
- 12. ChatGPT と学ぶ Rake (Rapid Automatic Keyword Extraction)
- 13. 「Python の基本」に関する備忘録
- 14. 画像を回転して黒い枠を切り取る
- 15. pygameのイベントハンドラをデコレータを使って(比較的)綺麗に書く方法
- 16. 【備忘録】ラスパイ上にSQLサーバーを立てて別PCからアクセスできるようにする -作業目安20分-
- 17. Raspiメモ
- 18. 【ポケモン】旅パのタイプ相性チェックツールの作成&公開
- 19. pandasのapplyよりもnumpyのwhereを使おう
- 20. poetryのpackage-mode=falseを設定して依存関係だけ管理する
【python】スライスを使って文字列を反転させる
## 概要
– Python のスライスについて便利な記載方法について説明します。
– 書き方を忘れてしまうのでメモがてら記載します。## TL;DR
– `test_str[::-1]` で文字列を反転させることができます。
– 文字列判定すさせることで、回文判定などに利用できます。## スライスの基本的な使用方法
> ❗ スライスの基本的な使用方法を知っている場合は、この章をスキップしてください。
– テストデータを定義
“`python
test_str = ‘abcdefg’
“`– 先頭から文字を取得する
“`python
test_str[0]
# ‘a’test_str[1]
# ‘b’test_str[2]
# ‘c’
“`– 末尾から文字を取得する
“`python
test_str[-1]
# ‘g’test_str[-2]
# ‘f’test_str[-3]
# ‘e’
“`– 取得する範囲を指定する
– `str[st
SageMaker Studioでカスタムイメージが起動しない
# 発生した事象
SageMaker Studioのjupyter labでカスタムイメージを選択して起動しようとしたところ。ステータスがUpdattingのまま起動されない。**(2024/4/1現在)**
# 原因
サポートに問い合わせたところ、AWS側の問題(おそらくバグ?)とのことでした。
space の JupyterLabAppSettings に SageMakerImageVersionAlias が設定されている場合、カスタムイメージを使用してJupyterLab App を起動しようとすると、CreateApp APIが呼び出されません。spaceの設定確認コマンド[2]
“`
aws sagemaker describe-space –domain-id–space-name
“`
# 対処法
対処法として以下を提示して頂きました。1. 新たに作成された space を使用する
2. AWS CLI コマンドから JupyterLab App を起動する[1]
“`
aws sag
Venv環境でのライブラリインストール時の setuptools < 40.8.0 (from versions: none) エラー対処法
# 現象
Venv環境で pip install を行うと、setuptools < 40.8.0 (from versions: none) エラーが発生し、インストールできないライブラリある。 ``` Installing build dependencies ... error error: subprocess-exited-with-error × pip subprocess to install build dependencies did not run successfully. │ exit code: 1 ╰─> [2 lines of output]
ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
ERROR: No matching distribution found for setuptools>=40.8.0
[end of outpu
ロジスティック回帰を復習
## 分類アルゴリズム
– 目的変数0/1の2値として扱う(2値分類の場合)
– 回帰だと予測値が0~1の範囲を超えてしまうため、そのまま使うことができない
– 多クラス分類の場合、目的変数を0, 1, 2のように量的変数のように使うことができない
– なぜなら、量的変数にすると、数値間で距離、順序があると捉えられるから## ロジスティック回帰について
– 2値分類の基本的なアルゴリズムである. (回帰と書いてあるが、分類のアルゴリズム)
– いくつかの要因(説明変数)から、目的変数[0/1]が起こる確率を予測するアルゴリズム
例) 患者の情報(年齢、体重、血圧など)から、ある病気にかかるかどうかを予測する
回帰をそのまま分類に使うと、0~1の範囲を超えてしまう問題がある。どうにかして0~1の範囲に収める必要がある。そこで、シグモイド(ロジスティック)関数を用いる。シグモイド関数は以下のような数式である。
$$ f(x) = \frac{1}{1 + \exp(-x)} $$
このシグモイド関数をグラフに表すと、下のようになる。
Python機械学習時系列モデルを勉強していくぜ!~時系列モデル構築とアンサンブル編~(Signate引っ越し需要予測17位解法)
# はじめに
第2回に引き続き時系列データを勉強していきます。[第1回(データの前処理)](https://qiita.com/MAsa_min/items/d76f7ce005ee6998c39d)
[第2回(LightGBMモデルの構築、Pycaretによるアンサンブルモデルの構築)](https://qiita.com/MAsa_min/items/7babb74b15d5268c2012)
[第3回(Prophetによる時系列モデルの構築、アンサンブル学習)](https://qiita.com/MAsa_min/items/2028755cd52459dfbb11)# Prophetモデル構築
時系列モデルとしてFacebookが開発したProphetを選択しました。なぜなら、**実装が容易**だからです←大事。
インスタンスを作ってfitするだけなので、まるでscikit-learnの様に使えます。https://qiita.com/tetsuro731/items/a6d6e42c202b2f9849aa
https://qiita.com/skillup_
Flowise の API を Python でストリーミング
Flowise API ストリーミングの Python コードを実装したので紹介します。思いのほか苦労しました。
動作確認環境
– Ubuntu
– Flowise 1.6.2
– Python 3.12
– python-socketio 5.11.2
– httpx 0.27.0# Flowiseとは
[Flowise](https://docs.flowiseai.com/) は、ユーザーが LLM アプリを簡単に視覚化して構築できるようにすることを目的としたローコード/ノーコードのドラッグ&ドロップツールです。LLM の APIキーが手元にあれば、チャットフローのデザイナ画面を開き、箱を3つほど配置しポチポチ設定するだけであっという間に簡単なチャットボットを作れます。
チャットフローのデザイナ画面
![327-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629684/7bdb6ae6-4cbc-89c7-2c8a-68ed6250f655.png
ゼロ知識証明フレームワーク
![1710620007329.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618478/df7b4082-275f-802f-bd20-34796ef2d88a.png)
1年半に渡り携わってきたDARAPA(米国国防高等研究計画局)が胴元となった[SIEVE(Securing Information for Encrypted Verification and Evaluation)プロジェクト](https://www.darpa.mil/program/securing-information-for-encrypted-verification-and-evaluation)が幕を閉じました。
このSIEVEはゼロ知識証明のフレームワークとなるもので、端的に言えば、証拠を公表せずに証明を実施できるという代物です。私自身は、プロジェクト内で作られるフレームワークの応用面の開発に重点を置いて携わりました。
例えば、アップルはiCloud上の児童ポルノ画像への規制策を発表しており(現
PythonでExcelファイルをjson形式へ変換
# やりたいこと
エクセルファイルに中にあるテーブルデータをjson形式へ変換したいこんな感じのエクセルデータから
| Left align | Right align | Center align |
|:———–|————:|:————:|
| This | This | This |
| column | column | column |
| will | will | will |
| be | be | be |
| left | right | center |
| aligned | aligned | aligned |こんな感じのjsonにしたい
“`
[{“Left align”: “This”, “Right align”: “This”, “Center align”: “Thi
Spotify APIを使ってアルバムの曲を分析してみた
Spotify APIを使って曲の分析をできることを知りました
特に業務で使うものではなかったのですが、音楽好きなものとして使ってみたくつかってみることにしました
### 事前準備
APIを使用するには、Spotifyでアプリを作成する必要があります
1. [Spotify developer](https://developer.spotify.com/)ページにアクセスしログイン
2. 右上のユーザー名クリックでメニューを開き[Dashboard]からダッシュボードに移動
3. [Create App]からアプリを作成します、入力欄にそって必要なものを入力
4. 作成できたらアプリ名をクリックし、settingから設定に移動します
5. Client ID とClient secretは実装時使用するのでメモしておいてください
![スクリーンショット 2024-02-21 20.10.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276326/6e1459e4-3b2e-e3b2-
Databricks における spark_catalog というオブジェクトに関する調査
## 概要
Databricks における spark_catalog がどういったオブジェクトであるかを調査しました。調査結果と spark_catalog を確認できるケースを記載します。
## 調査結果
spark_catalog とは hive_metastore のシノニムのようなものであると解釈しました。spark_catalog という記述を実施するのではなく hive_metastore と記載することが望ましいです。
“`sql
%sql
SELECT
— spark_catalog と記載しても動作する
spark_catalog.functions_test_01.get_abc() AS spark_catalog,— カタログエクスプローラーで確認できる hive_metastore と記載することが望ましい
hive_metastore.functions_test_01.get_abc() AS hive_metastore
“`なお、ドキュメントにて予約語として記載されておりませんでしたが、 spark_ca
イーロンマスクのパクリ疑惑
## 目次
1. [xai](#xai)
2. [使用技術](#使用技術)
3. [実装手順](#実装手順)
4. [結論](#結論)## xai
xaiとはeeron mask氏gagrok-1とはeeron mask氏率いるAI法人xaiが作ったLLMモデルである。
公開日は、2024/03/17である。
[参考URL](https://x.ai/blog/grok-os)grok-1のモデルには、Google DeepMindのhaikuモデルを使用している。
“`pakuri.py
import haiku as hk
“`
[haiku modelの使用方法](https://github.com/google-deepmind/dm-haiku#:~:text=JAX%20program%20transformations.-,Quickstart,-Let%27s%20take%20a)上記は、 CNN モデルを使用している。
[参考コード](https://github.com/xai-org/grok-1/blob/main/model.py)
ChatGPT と学ぶ Rake (Rapid Automatic Keyword Extraction)
### **user**:
ChatGPT先生、文章からキーフレーズ抽出を行う方法を Python で実装してもらえませんか?
—
### **assistant**:
ふ、本当にしょうがないんだから。でも、これがあなたの勉強になるのなら教えてあげるわ。でも、それが前提なのよ? Python で文章からキーフレーズ抽出を行うには、一般的には Rake (Rapid Automatic Keyword Extraction)という手法を使うのよ。以下に簡単なコードを記述してあげるわ。
まずは必要なライブラリをインストールすることね。ターミナルやコマンドプロンプトで以下のコマンドを実行して。
“`
pip install rake-nltk
“`その後、以下のPythonスクリプトを実行すれば、文章からキーフレーズを抽出することが出来るわ。
“`python
from rake_nltk import Rake# Rakeのインスタンスを作成
r = Rake()# 文章を定義
text = “ここに解析したい文章を入れて”# キーフレーズを抽出
「Python の基本」に関する備忘録
この記事は以下の本に関する、自分が参考になった点をピックアップした記事です。
https://www.kadokawa.co.jp/product/322201000299/
# 型の変換
以下のコードを例に、型の変換について説明します。
“`python
name = ‘1’new_num = int(name)
print(new_num, type(new_num))
“`最初に’1’という文字列を変数`name`に代入します。
“`python
name = ‘1’
“`‘1’は数値のように見えますが、シングルクォートで囲まれているため文字列型です。
nameの型を数値型に変換して、新しい変数`new_num`に代入します。
“`python
new_num = int(name)
“`変数`new_num`の型を確認すると、数値型になっていることがわかります。
“`python
name = ‘1’new_num = int(name)
print(new_num, type(new_num))
“`
“`:実行結果
1
画像を回転して黒い枠を切り取る
## 動機
AIの学習前にデータ拡張(水増し)する際、回転をさせると黒い枠が残るができれば消したい。
![test.gif:width:100px](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3759768/5088cb5b-358a-2aba-52b9-29673ef98bb8.gif)## 画像を回転して黒い枠を切り取る
“`python:rotate_and_crop.rb
import cv2
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import mathimg = cv2.imread(‘/content/drive/MyDrive/lena.png’)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
fig = plt.figure()
h, w, c = img.shape
imgs=[]for i in range(0, 360, 10)
pygameのイベントハンドラをデコレータを使って(比較的)綺麗に書く方法
# はじめに
デコレータを使ったpygameのイベントハンドラを実装する方法を紹介します。
## この記事の対象者
– ある程度Pythonの知識があり、pygameのイベントハンドラをデコレータで実装したい。
## 前提知識
– 基本的なPythonの記法と仕様を理解している
– pygameの基本的な使い方を知っている# 実装
## 実際のコード
“`python: main.py
import sysimport pygame
from pygame.locals import * # QUITやKEYDOWNなどのイベントを一括インポート# 初期設定
SCREEN_SIZE = (320, 140)
clock = pygame.time.Clock()
fullscreen_flag = False
event_handlers = {}pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE)
pygame.display.set_caption(u”hoge”)# デコ
【備忘録】ラスパイ上にSQLサーバーを立てて別PCからアクセスできるようにする -作業目安20分-
# 概要
ラズパイにSQLサーバーを立ててローカルネットワーク上の別PCからwebアクセス出来るようにする。◇参考リンク
Raspberry PiをSQLサーバーにして、Python3からMySQLのデータを検索して表示させるまで
https://qiita.com/p3ishnm2/items/078d8d7a47ee3b7abc31
# インストールするパッケージ一覧
– mariadb :データベースシステム
– Apatch2 :webサーバーソフトウェア
– php :スクリプト言語
– phpMyAdmin :webアプリケーション# 実施内容
0.既存パッケージを更新する
1.ラズベリーパイ上にデータベースを構築する
2.構築したデータベースをwebページから操作可能にする
3.ネットワーク上の別PCからアクセス可能にする## 0.既存パッケージの更新
パッケージをインストールする前に既存パッケージの更新をしておきましょう。
“`
$sudo apt-get -y update
$sudo apt-get -y upgrade
“`## 1.ラズ
Raspiメモ
### 背景
RaspberryPiを運用し始めました。
以下のことを実現したい。
・イベントのメール配信
・配信の元ネタはSQLiteDBに登録されているイベント情報
・イベント情報が手動でWebのフォームから登録するメール配信は、いろいろ調べたが、以下の所でいろいろ引っかかって
1. crontabの制限
1. サービス環境整備
1. タイマー関連### 最終構成
1. python scheduleを使用
1. サービス使用サービスの中身:
“`YML
[Unit]
Description=JOB
After=network.target[Service]
User=pi
WorkingDirectory=/home/pi/MatplotlibForFlask
Environment=”PYTHONPATH=/home/pi/.local/lib/python3.9/site-packages”
ExecStart=/usr/bin/python3 /home/pi/MatplotlibForFlask/without_flask_app.py[Insta
【ポケモン】旅パのタイプ相性チェックツールの作成&公開
# はじめに
3年前にポケモンBDSPが発売されたタイミングでとあるツールを作成しました。
旅パで使うタイプを設定すると、足りていないポケモンのタイプを教えてくれるものです。GitHubにあるので好きにご覧ください。
https://github.com/sugimochi97/type_comp_app/tree/master
# データの取得
まず、ポケモンのタイプ相性表を取得します。データ数としては少ないので自分で作ってもよいのですが、当時の自分はスクレイピングして取得したようです。
長年お世話になってきた徹底攻略様よりお借りしています。https://yakkun.com/data/aisyou.htm
実際のスクレイピングに使用したコードは以下です。
https://github.com/sugimochi97/type_comp_app/blob/master/scraping.py
# アプリとして実装
相性判定部分に関しては既にある相性表から読み取り、●がついているかどうかで判断しています。
関数で、効果抜群にできないタイプと不足タイプを検出し、
pandasのapplyよりもnumpyのwhereを使おう
# 目的
“`csv:sample.csv
mean,std
-69.33333333333333,0
-61.785714285714285,4.516284468102667
-50.6875,2.4418230894149553
-61.5,0
-60.95,5.862234170833182
…
“`サンプルのような 2000 行の CSV ファイルを読みこみ、std が 0 の場合は 1 にする
# 実装方法
以上の処理を行う時、多くの方は以下のような処理を書くのではないでしょうか?
“`python:main.py
import pandas as pdsample_df = pd.read_csv(“sample.csv”)
sample_df[“std”] = sample_df[“std”].apply(lambda x: 1 if x == 0 else x)
“`
以上の方法でも全然問題はないのですが、`numpy.where`を使うことでより高速に処理することができます
# numpy の where とは
numpy 配列
poetryのpackage-mode=falseを設定して依存関係だけ管理する
## まえおき
[poetry](https://python-poetry.org)は元々パッケージのバージョン管理に便利な機能が多く、publishコマンドとかわかりやすいですね。
しかしプロジェクトの管理に使用するだけならこれらのメタデータは不要になり、publish等もできない方が良くなります。
## ver 1.8
バージョン1.8から`package-mode`という設定が追加され、パッケージの情報を抜きに依存関係を管理できるようになりました。
現時点では自動でパッケージの情報を削除できないので、設定ファイルを手動で変更する必要があります。
## 削除できる項目
**全てです!**
具体的には、`poetry init`コマンドで追加される`[tools.poetry]`は必要なくなります。
極端な例ですが、以下のようになります。
“`toml: pyproject.toml
[tool.poetry]
package-mode = false[tool.poetry.dependencies]
python = “^3.8”
cleo = “>