Python関連のことを調べてみた2023年09月26日

Python関連のことを調べてみた2023年09月26日
目次

Databricks にて Hive メタストアのテーブルから Unity Catalog のテーブルへ移行方法論の検証

## Unity Catalog のテーブルへ移行方法論概要

本文書では、HiveメタストアのテーブルからUnityカタログのテーブルに移行する方法を紹介します。Unity Catalogでは、Deltaテーブルのみがサポートされているため、移行元テーブルの種類に基づく移行方法が必要となります。本記事では、次表で示すソーステーブルに応じた移行方法を行うための検証結果と実際の移行方法を記述します。

| # | ソーステーブル | 移行方法 |
| —- | ——————– | ———————————————————— |
| 1 | Delta テーブル | `DEEP CLONE` を実行後、テーブルコメントを設定。 |
| 2 | Delta 以外のテーブル | `CREATE TABLE LIK

元記事を表示

Python3ではじめるシステムトレード:ChatGPTとの会話をうまくするには

ChatGPTが騒がれ始めてからずいぶんと月日が流れ、そろそろ問題点を多く指摘され、なんでもっと効率的に使うことができないのだろうかと悩み始めていました。そんなとき(Deaplearning.AI)[https://learn.deeplearning.ai/]のショートコースを知りました。おすすめはChatGPT Prompt Engineering for Developersです。驚くべきことはAPIのkeyがなくてもPythonでchatGPTのAPIを実行できる点です。下の画面中央の部分がそれにあたります。日本語版の開始が待たれるところです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267055/816e942d-0389-ec55-d484-bab06a79bdfc.png)

幾つかのショートコースを学んでみて、このChatGPT Prompt Engineering for Developersが一番大事だと悟りました。かつ、このコースを最後まで行うまでには結構な

元記事を表示

(初心者作業日誌)yahooのライブラリを利用した株データの取得

### やりたいこと
– yahoo_finance_api2の関数(引数、output)の確認
– pandas_datareaderとの違い
– コピペだけじゃなくて何をしているのかをできるだけ見てみる
– 可視化の方法
– グラフ系のライブラリ・関数の確認

### 参考URL
– 【日本株対応】Pythonで株価のローソク足データを取得する方法まとめ【CSV、ライブラリ、スクレイピング】
– https://myfrankblog.com/how_to_get_stock_price_with_python/
– GitHub – pkout_yahoo_finance_api2_ API to interact with Yahoo Finance
– https://github.com/pkout/yahoo_finance_api2
– 【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する
– https://myfrankblog.com/stock_price_with_yaho

元記事を表示

【Python】sympyの行列をlatex(matplotlib)で表示する

概要

sympyは代数の計算を行うことができる標準ライブラリです。
sympy.latex()関数を用いることで簡単に計算式のlatexコマンドを得ることができますが、行列のlatexコマンドをmatplotlibで表示したところエラーが発生したためその原因と解決策を書き残しておきます。

エラー

行列式を代入しlatex()でlatexコマンドへ変換した後、matplotlibでその数式を表示します。

“`python
from sympy import symbols, Matrix, latex
import matplotlib.pyplot as plt

#xを入力時のシンボルとして指定
x = symbols(‘x’)

#行列を定義
matrix = symbols(“a:z”, Integer=True)
matrix = Matrix()
m = Matrix([
[x**3 + 2, x – 2],
[2*x + 3, x**2 – x + 4]])

#mをlatexに変換
m = latex(m)

元記事を表示

Python padasのクエリについて基本的なこと

pandas.DataFrame.query(‘条件式’, inplace=False)

デフォルトのパラメータ( inplace=False )は、データのコピーを返す。
元のデータフレームのデータを更新する場合は、inplace=Trueとする。

条件式は、シングルコーテーション「’」又は、ダブルコーテーション「”」で囲む。

列名は、列名をそのまま使用する。(シングルコーテーション等で囲まない)

文字列は、 シングルコーテーション「’」又は、ダブルコーテーション「”」で囲む。
ただし、条件式と別の記号を使用する。
(例:‘ 列名 == “文字列“ ‘)

条件式で変数を使用するときは、変数名の前に「@」を付ける必要がある。

ここからは、各条件式について簡単にまとめる。

一致条件 ==

不一致条件 !=

比較演算子 >= など

and条件 &

or条件 |

特定列の要素で先頭が特定文字(前方一致)
対象の列名.str.startswith(“特定の文字”)

特定列の要素で末尾が特定文字(後方一致)
対象の列名.str.endswith(“特定の文字”)

元記事を表示

demucsをスクリプトで処理する(macOS)

# demucsって?
2021年4月ごろに、facebookのメタ研究チームが開発した音声分離ライブラリです。これまでspleeterなども提供されていましたが、畳み込みニューラルネットワーク(CNN)を使ったモデルとして最近注目されています。

https://github.com/facebookresearch/demucs

ただ、ライブラリの細かいメソッドが紹介されているドキュメントはまだ用意されておらず、現状、使い方の参考となっているのはこのGitHubリポジトリのリードスのみなのです。

# やること
すでに多くのライターがdemucsについて紹介していますが、Pythonスクリプト(かつmacOS)で紹介しているものは少なかった気がするので、今回は開発環境の構築からスクリプトでの実行まで紹介できればと思います。

# 環境構築
まずは環境を作っていきます。今回は以下の環境で作成していきます。macOSとwindowsでは挙動が異なる場合があるので、windowsの方は申し訳ありませんが他の記事を参考にしてください。

  • Mac OS Ventura 13
元記事を表示

seabornでboxplotのboxなし(線だけ)とswarmplotを重ねる

設定を忘れるので、メモ。
このようなグラフが描けます。boxplotのboxなし・whiskerなしとswarmplotを重ねます。
![dummy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/820036/98f869cd-118b-f0c0-d421-48476c470384.png)

# ダミーデータの生成
自分のデータを持っている人はスキップしてください。
“`Python:Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 2種類のダミーデータを生成
np.random.seed(seed=0)
a = np.random.normal(10, 5, 10) #平均、標準偏差、個数
b = np.random.normal(20, 10, 10)

# seabornでboxplotを描きやすいようにくっつける
df_a = pd.D

元記事を表示

サーバーサイドのデザインパターン[Factory Patternの章]

# イントロダクション
### Factory Patternの定義
Factory Patternは、オブジェクトのインスタンス化をサブクラスに委譲することで、クライアント側から直接インスタンスを生成することなく、オブジェクトを作成するためのデザインパターンです。

### Factory Patternの目的
Factory Patternの主な目的は、クライアントとオブジェクトの生成コードの間の結合を緩和し、コードの変更に対して柔軟で、拡張性に優れた構造を構築することです。

# Factory Patternの概要
クラス図
![スクリーンショット 2023-09-25 20.40.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3335033/099b0640-a4d9-488b-4a8e-ff4c959d95b8.png)

### 基本概念
– Client(クライアント):ファクトリを使用してオブジェクトを作成します。
– Product(プロダクト):インターフェースで、Concr

元記事を表示

【FastAPI】JSONデコードエラー発生時のハンドリング方法

# 概要
FastAPIフレームワークを使うとき、HTTPリクエストのバリデーションエラーが発生したときのエラーハンドリングを実装しました。今回は、JSONのデコードエラーの時の実装方法を紹介します。

# サンプルコード

FastAPIの`main.py`に以下のように実装。

“`py
@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request: Request, exc: RequestValidationError):
return JSONResponse(
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
content=jsonable_encoder({“status”: “xxxx”,
“msg”: “xxxxxxxxx”}),
)
“`

上記コードでは、FastAPIの

元記事を表示

【AzureML プロンプト フロー】Chat with Wikipedia

# はじめに
今回はAzureMLのプロンプトフローを試してみます。
サンプルフローはいくつか出ていますが、その中でも「Chat With Wikipedia」を使います。

# Chat with Wikipedia
Chat with WikipediaはWikipediaを使ってチャットできるボットです。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976188/8d98aaa9-6d5e-c292-11ec-b8e4c4d0516f.png)

Chat with Wikipediaを作成したらさっそく始めます。

## Azure OpenAIの接続
はじめにプロンプト

元記事を表示

ステージ1課題解読 2023/9/23~2023/10/8プロジェクト

## 1.はじめに
メインの記録は[こちら](https://qiita.com/yuyas7/items/b8b2693024172af556df)
課題についての理解を深めるため
# 2.課題
クライアントがサーバに接続する形式のチャットメッセンジャーサービスを作成します。
サーバはバックグラウンドで稼働し、一方でクライアントはCLIを通じてサーバに接続します。
接続が確立された後、クライアントはメッセージを入力してサーバに送り、そのメッセージはサーバに接続している他の全てのクライアントにも配信されます。
### 解読
client.py(クライアント), server.py(サーバ)のファイルを作る。
server.pyを先に起動させる。(起動したら動き続ける)
client.pyを起動させTCP形式で接続を確立させる。(複数でも可)
クライアントがメッセージを入力してから、UDP形式でサーバにメッセージを送信させる。
サーバーがメッセージを受け取ったら、他の全てのクライアントにUDP形式でメッセージを配信させる。
# 3.機能要件
・サーバをCLIで起動し、バックグラウンドで着

元記事を表示

【AzureML プロンプト フロー】Ask Wikipediaを試してみた

# はじめに
今回はAzureMLのプロンプトフローを試してみます。いくつかサンプルフローがありますが、今回はAsk Wikipediaを試します。

# Ask Wikipedia

それでは試してみましょう!

まず、プロンプトフローを「作成」すると、このようにいくつかサンプルのフローが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976188/8d98aaa9-6d5e-c292-11ec-b8e4c4d0516f.png)

今回はこのうちのAsk Wikipediaのサンプルフローを使います。

## Azure OpenAIの接続
はじめにプロンプトフローではLLM接続が必要となってくるため、すでにデプロイしたAzure OpenAIのモデルに接続します。

「接続」タブの「作成」から下記の必要な項目を入力してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

画像わからないデータエンジニアが画像系コンペに参加してソロ銀メダル取った話

## はじめに
若干釣りっぽいタイトルで恐縮です?‍♂️

画像についてあまり詳しくない現職データエンジニアが、単騎で画像コンペに突っ込んでいき、どのようなプロセスでメダルを獲得するに至ったの?を共有する記事となっております。

画像コンペの進め方がわからない人間がどのようにして進めていったのかを共有することで、これからコンペに参加してみたいな〜と思っている方へのモチベーション向上・後押しになれば良いなと考えております。

細かいアーキテクチャや使った手法、ツールについてはあまり言及できていないと思います!ライトに読んでいただくことを目的としたいので予めご了承くださいまし。

## 書いている人間のステータスについて
– 現職データエンジニア(BigQueryが友達)
– 統計検定2級を取っているため、数式を見てもアレルギーは出ない
– 仕事で画像をはじめとした非構造データを扱うことは少ない
– 最近文章系はちょっと増えた
– AIについては若干の知識があり、自然言語処理系はなんとなくわかっている(つもり)
–  Embeddingの理解はとっかかりなくできたレベル

元記事を表示

OSSコードリーディングのすゝめ

# はじめに
### OSSとは
簡単に言うと、誰でも無料で読んだり使ったりすることができるソースコードです。

オープンソースという言葉が生まれた1998年に、定義が定められました。
[オープンソースの定義(v1.9)注釈付](https://opensource.jp/osd/osd19/)

まとめると、
**・再配布自由**
**・ソースコードの公開**
**・派生物の許容**
**・差別の禁止**
**・追加ライセンスの禁止**

これらの条件を守っているものがオープンソースと呼ばれるようです。
### ChatGPTの出現
ChatGPTや各Pluginの活用方法がメジャーになったことで、コードリーディングに関しても今までとは比べ物にならない程、効率的に行うことができるようになりました。
# 何のために読むのか
OSSコードリーディングは、他人のコードを読むことで技術力を向上させる方法として知られています。
実際にどのような良いことがあるのかをまとめました。
### 業務のため
自社のシステムに組み込まれているOSSのコードを理解し, システムの安定性を保つために行います。

元記事を表示

オープンインタープリターでプロンプトデータベースを作成し、アイアンマンのような開発体験をした話

## はじめに
こんにちは、今日は皆さんにとっても興味深いテクノロジー、オープンインタープリターについてお話しします。このツールを使って、プロンプトデータベースを作成しました。それだけでなく、アイアンマンのような開発体験もできたので、その楽しさを共有したいと思います。

## オープンインタープリターとは?
オープンインタープリターは、自然言語でプログラムやデータベースを操作できるツールです。

## プロンプトデータベースの仕様
– Google Chromeの拡張機能「プロンプトツクール」でプロンプトをエクスポート
– フォルダスクリプトを実行してファイルを分析し、データベースに登録
– プロンプトを分析して、タグを3つ生成
– 目的や行動を短い説明文で表現し、データベースに登録

## 開発手順
1. SQLライトのスキーマをオープンインタプリタで作成
2. ファイル情報を受け取り、Pythonプログラムで分析してデータベースに登録するソースをinterpreterに依頼
3. 「テストしてください」と指示すると、テスト用のファイルを用意し、データベースに登録
4.フォルダアクシ

元記事を表示

PythonでPDF文書に透かし(ウォーターマーク)を追加する方法

PDF文書は、一般的に使用される電子ファイル形式であり、それは良い、高いセキュリティ機能を維持するために、クロスプラットフォーム、フォーマットを持って、一般的に印刷、共有、ネットワーク配信の内容で使用されます。しかし、PDF文書はまた、盗難、漏洩、改ざんなどのリスクに直面する可能性があります。文書のソース、所有者、情報の使用を示す、PDF文書の著作権を保護するためには、PDF文書に透かしを追加することができます。PDFとしてPDF文書に追加された透かしの特性を編集することは容易ではありません削除または変更することは容易ではありません。したがって、透かしのPDFは、PDF文書のセキュリティと信頼性を向上させるために、文書の保護に効果的な役割を果たすことができます。この記事では、Pythonを使って**PDF文書にテキストや画像の透かしを挿入する方法**を紹介します。

– **[テキスト透かしの挿入](#テキスト透かしの挿入)**
– **[画像透かしの挿入](#画像透かしの挿入)**

この記事で使用する方法は、[Spire.PDF for Python](https://www.e-

元記事を表示

[Django] クライアントのIPアドレスを取得してみよう!

## この記事の目的
DjangoでクライアントのIPアドレスを取得する関数の実装方法がわかる

## 使用技術

“`
python = 3.11.2
Django = 4.2.3
“`

## では早速該当の関数を見てみよう
“`sample.py
def get_client_ip(request):
“””クライアントのIPアドレスを取得”””
x_forwarded_for = request.META.get(“HTTP_X_FORWARDED_FOR”)
if x_forwarded_for:
ip = x_forwarded_for.split(“,”)[0]
else:
ip = request.META.get(“REMOTE_ADDR”)
return ip
“`

クライアントのIPアドレスを取得することはセキュリティやトラッキングの目的で役立つことがあります

## 取得方法はクライアントがプロキシサーバーを経由しているか否かで決まる
1. プロキシサーバーを経由している場合

元記事を表示

【QGIS+Python】データを使って「駅の都会度論争」に決着をつける

# 背景
「〇〇駅と××駅とではどっちが都会か」という「駅の都会度論争」を見聞きすることはしばしばありますが、論理的に決着がついている例を見たことはほぼありません (たぶん)。
というわけで、データを使ってこの論争に決着をつけることを試みようと思いました。
# 前提
本記事では「都会度=駅周辺の卸売業・小売業事業所の数」(以下事業所数) と定義して分析します。(この定義の妥当性については深く検討していません。何らかの指標に基づいて集計・分析することが目的です。)
# 使用したデータ
2016年「経済センサスー活動調査」の「産業 (大分類) 別事業所数及び従業者数」の4次メッシュ (500mメッシュ) データ (以下事業所数データ) を使用しました。e-Statに公開さ

元記事を表示

ChatGPTと会話可能なTeams ChatBotを作る Functions編

# 概要

この記事には以下の要素が含まれます。
– Azure OpenAI、openaiライブラリの解説
– Azure Functionsの構築
– Azure FunctionsとAzure KeyVaultの統合

この記事では、Azure OpenAI内のGPTモデルを使用したTeams ChatBotの作成方法について解説します。
Teamsアプリケーションとして追加することで、Teams上で対話形式でAIを使用できます。

完成図
![2023-09-20_10h34_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072221/0f7fc609-3212-5a64-3ece-8d8e660687a5.png)

## アプリケーション構成

本アプリケーションは、Microsoft Teams上で動作するチャットボットです。
Azure Functions, Azure OpenAI, CosmosDB, KeyVaultなどのサービスを組み合わせて実現します。以下が主な

元記事を表示

M2macでmanimがインストールできない

M2Macのvenv上で以下のエラーに遭遇
“`

manimpango.c:773:10: fatal error: ‘cairo.h’ file not found
#include “cairo.h”
^~~~~~~~~
1 error generated.
error: command ‘/usr/bin/clang’ failed with exit code 1
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for manimpango
Building wheel for pycairo (pyproject.toml) … error
error: subprocess-exited-with-error

× Building wheel

元記事を表示

OTHERカテゴリの最新記事