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

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

PythonとAIの密接な関係性!これから必須のプログラミングスキルを徹底解説

Python(パイソン)とは、その可読性と簡潔さから世界中のエンジニアに愛されているプログラミング言語です。特に、AI(人工知能)の分野ではその特性が生かされ、広く利用されています。Pythonは、ライブラリやフレームワークが豊富で、深層学習を行うためのTensorFlowやPyTorchといったツールが利用できます。これらのツールがPythonのシンプルな文法と結びつくことで、AI開発の敷居は格段に下がりました。

私自身もPythonを使ったAI開発に携わっており、その可能性と使いやすさには日々感動しています。特に注目すべきは、京都大学や東京大学など日本の名門大学で開発されているChainerやCupyといったPythonライブラリです。これらはPythonを使ったAI開発のパイオニア的存在であり、私自身もこれらを使ってAIの研究を行ってきました。

AIとPython(パイソン)の結びつき:GPUの力を引き出す手法と、日本の最先端事例を徹底解説

https://maricablog.com/?p=788

プログラミングの初心者でも大丈夫!Python(パイソン)を使った

元記事を表示

【AWS】pythonで、異なるS3間の差分をコピーする

# はじめに
pythonを使用して、異なる環境に存在するS3から別のS3へ、差分のオブジェクトのみをコピーする方法をご紹介します。

移行元、移行先のバケットのみ設定すれば、勝手に比較して差分をコピーしてくれるイメージです。

![前後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3337466/1a09311f-1429-c738-e427-f5d3def8c0aa.png)

また、余計な情報が混ざってしまうのもあれなので、あえてエラーハンドリングなどは割愛しています。ご了承ください。

# 前提
移行元と移行先、どちらにもアクセスできる環境(EC2など)で動作させる前提です。

もしアクセス権限がない場合は、一時的な認証トークンなどを使用すれば可能ですが、本記事は割愛します。

その他のバージョン等は下記です。

“`Shell
python -V
>> Python 3.10.9
“`

# 全体の流れ
全体の流れは下記です。
1. 両者のS3からオブジェクトキーの一覧を取得
1. そ

元記事を表示

ChatGPTの出力図/グラフに日本語テキストを使う方法(Kaggle/Code Interpreterの使い方)

## 出力結果に日本語を使えない…?
### 日本語を出力すると…こうなる
ChatGPT「Code Interpreter」を使ってグラフや図を出力しようとすると、こんな風になりました。

![スクリーンショット 2023-07-14 085758.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416622/82412b91-9563-34d6-7f56-9fbef7727ebf.jpeg)

こちらは、日本語の漢字を「ワードクラウド」として出力したものです。日本語に該当する部分が、「☐」と文字化けして表示されています。…これでは、正直なんの事なのか、さっぱり分かりませんね。

日本語を文字化けすることなく表示させるには、どうしたらいいのでしょうか?

…実は、めちゃくちゃ簡単で。「解析したいデータセットと一緒に、フォントファイルをアップロードするだけ」なんです。

では具体例を元に、この文字化けしてしまった「ワードクラウド」を正しい出力結果にしてみましょう。

***
※ChatGPT「Code

元記事を表示

GeoIP2のデータベースを手に入れたのでgradioで描画しpythonanywhereを使おうとしたけどreder.comでデプロイした話

試したい方はこちらから
https://geoip2-demo.onrender.com/

## データベースの入手

データベースは無料で入手できますが、登録が必要です。
まずは以下からサインアップしてください。

https://www.maxmind.com/en/geolite2/signup

登録には以下のフォームを埋める必要がありますが、適当でも大丈夫です。すぐに使えるようになりました。

* Full name
* Company
* Industry
* Country Intended use
* How you plan to use the geolocation data
* Email address Please provide a valid email address. This will become your username.
* Phone (optional)
* How do you plan to use the data?

メールアドレスにパスワード設定のメールが来るのでパスワードを設定します。

https://www.maxmi

元記事を表示

(Python)jsonオブジェクト内のfloat⇔Decimal一括型変換

## 概要
AWSでLambdaからDynamoDBを操作していると、jsonオブジェクトのfloat⇔Decimalの型変換が必要なタイミングが多々発生する。
ネストされたjsonの構造をいちいち調べて変換するのは大変であるため、一括での変換方法を作成してみた。

実行環境:Python 3.10

## Decimal→floatの場合
こちらは検索でも何件かヒットした。
json.dumpsのdefaultを利用する。
“`python
import json
from decimal import Decimal

#Decimal->float変換用の関数を作成
def decimal_to_float(obj):
if isinstance(obj, Decimal):
return float(obj)

#ネストされたDecimal型の要素を持つjsonを定義
json_decimal = {‘key1’: ‘value1’, ‘key2’: Decimal(‘12.3’), ‘key3’: {‘key4’: Decimal(‘456.7’),

元記事を表示

【時系列解析】ARCHモデルから生成されるデータとホワイトノイズを比較

# 概要
当記事はARCHモデルがどのような時系列データに適用できるのかを直感的に理解するために、ホワイトノイズとARCHモデルから生成されたシミュレーションのボリンジャーバンドを比較するもの。

要点は
・ARCHとホワイトノイズのデータは一見区別がつかない
・ARCHとホワイトノイズのそれぞれ2乗したものの偏自己相関を見ると、それぞれの違いがわかる
・ARCHから生成されたデータではボラティリティクラスタリングが発生している事がわかる

# ARCH modelとは
ARCHモデルとは分散のARモデルのこと。
つまり、時刻tの分散は時刻t-1やそれよりも前の時刻t-nの分散で説明できるとするモデルである。

ARCH(特にGARCH)は金融業界でよく使われるモデルであり、株価収益率やボラティリティの予測などに使われる。

# ホワイトノイズとARCHモデルから生成されたシミュレーションデータ
ホワイトノイズは
$y_t = \varepsilon_t, \varepsilon は N(0,1)$
と表現できる。$\varepsilon$は独立同一分布(i.i.d)から生成されるので

元記事を表示

【AWS CDK】Pythonで動くLambdaレイヤーをCDKでデプロイする方法

# はじめに
仕事でLambdaレイヤーをCDKでデプロイする機会がありました。
その辺のナレッジが記載された記事があまりなかったので、
本記事ではLambdaレイヤーをCDKでデプロイする方法を記載します。
# 環境
OS:Windows 10

# 前提
以下がインストール済み
 CDK(ver 2.67.0)
 Docker Desktop
 yarn

CDKの言語:TypeScript
AWS CLI:デフォルトプロファイルが設定済み
Docker DesktopはCDKでのデプロイを実行するときに使います。

# 実装内容
Pythonで動くLambdaレイヤーと、レイヤーを使用するLambdaを実装します。
Lambdaのソースコードは以下です。
numpyライブラリのモジュールを使って、ランダムに乱数を生成するだけのシンプルな内容です。
Lambdaレイヤーには、numpyライブラリを含めて実装します。
“` index.py
import numpy

def handler(event, context):
# 乱数を生成
print(numpy

元記事を表示

【Python】CSVを読み込むと文字列の中に\ufeffが入ってしまう場合の原因と解決方法

# 概要
Djangoで、ユーザーがアップロードしたCSVファイルのヘッダー名が指定のヘッダー名と一致している場合のみアップロードを成功させるという認証方法を実装していました。しかし、ヘッダー名を一致させても頭にBOMの文字列が入っているのが原因で、失敗してしまいました。本記事ではその原因と解決方法を記載します。

# エラーが発生したコードと原因

“`py
def upload_file(request):
if request.method == ‘POST’:
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
csvfile = request.FILES[‘file’]
decoded_file = csvfile.read().decode(‘utf-8’).splitlines()
reader = csv.reader(decoded_file)

元記事を表示

【Sqlite3】PythonでSqlite3を操作する

Pythonで気軽に導入できるデータベースとして、Sqlite3があったのでこちらを使用してみようと思い、その備忘録を記載します。

今回は基本的な構文のみ使用しているため、カラムの制約や複雑なクエリなどは紹介していません。ただし、SQLの一連の流れとして

* データベースと接続
* テーブルの作成
* テーブルの名前を変更
* テーブルのカラムを追加
* テーブルにレコードを追加
* テーブルのレコードの値を変更
* テーブルのレコードを削除
* テーブルのカラムを削除
* テーブルの削除

を最終的なまとめとして紹介します。

本記事はPythonの[Sqlite3チュートリアル](https://docs.python.org/ja/3/library/sqlite3.html#)と[Sqliteホームページ](https://www.sqlite.org/index.html)を参考にしています。

## Databaseの作成

PythonでSqlite3を使用するにあたり、`sqlite3`モジュールを使用します。ただし、Pythonの標準モジュールの

元記事を表示

Django私的学習備忘録 -get_context_dataメソッドは何をしているか-

# はじめに
Djangoの私的学習メモです。
ChatGPT4にて調べた内容と追加で調べた内容を見返せるように記事としてまとめました。

# 役割
Djangoのget_context_dataメソッドは、特にクラスベースのビュー(CBV)でテンプレートにデータを渡すために使われます。このメソッドは、テンプレートコンテキストと呼ばれる、テンプレートエンジンがテンプレート内の変数をレンダリングするために使用するデータの辞書を返します。

# テンプレート
get_context_dataメソッドは、通常は次のようにオーバーライドされて使用されます。
“`Python:views.py
class MyView(TemplateView):
template_name = “my_template.html”

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) #親クラスのメソッドを実行
context[‘my_dat

元記事を表示

分位点回帰をやってみる

# はじめに
最近、分位点回帰を扱うことがあったので基本的なところを整理しておきます。通常の回帰分析では基本的に「説明変数で条件付けた目的変数の条件付き期待値」を扱うのに対して、分位点回帰では「説明変数で条件付けた目的変数の条件付き分位点」を扱うことが可能になります。

# 最適化問題としての分位点推定
分位点回帰を行う前にデータの分位点の推定を最適化問題として扱うことを考えます。まずは分位点の推定の際に必要な関数を以下に定義しておきます。

### 累積分布関数及び分位点関数
確率変数$X$の累積分布関数$F(x)$及びその逆関数$F^{-1}(\tau)$を以下のように定義します。

“`math
F(x)=P(X \leq x)\\
“`
“`math
\hspace{35pt}F^{-1}(\tau)=inf\{x|F(x)\geq\tau\}\hspace{15pt} (0<\tau<1) ``` $F^{-1}(\tau)$は$0\sim1$の入力に対して分位点を返すような関数なので分位点関数と呼ばれています。 ![fig1.png](https://qiita-i

元記事を表示

aws-iot-device-sdk-python-v2 を用いてPublish/Subscribeを行う(Publish編)

時間が空いてしまいましたが[以前の記事](https://qiita.com/wakuto_kurokawa/items/dfda706f08d92a60e2f6)の続きにあたります。
想定している全体像は以前の記事にある通りですが、この記事単独でAWS IoTでのPublish部分の流れがわかるようにしています。

# デバイスを接続(環境準備)
サービス -> IoT -> IoT Core でAWS IoTの画面を開きます
右上の開始方法のボタン(下記画像)あるいは画面左のメニューから接続 – 1個のデバイスを接続を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3342051/8291eac2-0e5c-3662-baae-358d4285f7b4.png)

## Step 1 デバイスを準備する
デバイスを準備する とありますが、今回はローカルの環境をIoT機器に見立てて実行しますので、そのまま次へで大丈夫です。
(実行環境からの通信が可能か、手順にあるpingは実

元記事を表示

釈迦に説法めいたツイッターがヤバいというが技術面ではどうなんだという話

TwitterのAPI制限の騒動から暫く経ちましたが、技術面で見てツイッターの状況はどうなのかまとめてみました。

おそらく、大半のQiitaのユーザーは日曜プログラマの私よりも遥かに優秀で経験のある技術者だと思いますので、おそらく多くの方が社内外でツイッターの扱いについて相当揉めていると思いますが・・・。

# 1.Twitter社の社員が大量離反して社員が8000人から1500人に減った

まず、イーロン・マスクがTwitter社を買収し、社内改革を強行した時に社員が大量に離反、一説には社員が8000人から1500人も減ってしまいました。

https://article.auone.jp/detail/1/3/7/48_7_r_20230413_1681353603459053

おそらく、大半の会社勤めの方は相当やばいと気づくと思います。何しろ普通の会社なら一人でも辞めたら、会社の規模や雇用の仕方、辞めた人の立場にも寄りますが、それはそれで揉めるわけです。一人でもそれなのに6500人も辞めたら会社が回らなくなり、プロダクトの運営が機能不全に陥るのは多くの人が想像つくと思います。

元記事を表示

Cythonをインストールしているのにpip installでModuleNotFoundError: No module named ‘Cython’となる場合の解決方法

pip installでCythonインストール済みなのに、なぜかほかのライブラリをインストールするときにModuleNotFoundError: No module named ‘Cython’となって、なかなか解決できなかったのでメモ。

# 環境
python3.7.3

# インストール方法
“`bath
$ pip3.7 install –upgrade pip
$ pip3.7 install –upgrade cython
$ pip3.7 install cython_bbox
“`
# エラー内容
cython_bboxをインストールする前にcythonのインストールは成功しているのだが、なぜかエラー。
“`bash
Collecting cython_bbox
Downloading cython_bbox-0.1.3.tar.gz (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.3/41.3 kB 261.9 kB/s eta 0:00:00
Installing build dep

元記事を表示

Groverのアルゴリズムで簡単なパズルを解く

量子アルゴリズムの一つである「Groverのアルゴリズム」について、「こう使えば良いのかな?」というのが割と固まったので、今後のためにある程度まとめておきます。
参考になる部分があれば幸いです。

# 実行環境
量子回路の実装にはqiskitを使用します。qiskitは、IBMQが提供しているpythonのライブラリです。
また、IBMQが提供しているIBM Q Experienceのアカウントを作成すると、クラウドを通じてqiskitやnumpyなど必要なライブラリをインストールせずに使用できるので、こちらを使う方がおすすめです。

https://quantum-computing.ibm.com

IBM Q Experienceのアカウントは、普通の人か、研究機関に所属する研究者かどうかで使える実機の数が違うのですが、シミュレータで動かす場合は誰でも使えます。実機も7ビットまでは使えるっぽいです。

# Groverのアルゴリズムとは1
量子探索アルゴリズムとも呼ばれています。理論的な解説は以下のサイトがとても分かりやすく、お世話になりました。

https://dojo.qu

元記事を表示

DataStaxによる生成AIへのアプローチ

## はじめに

現在、生成AIをめぐる状況は、目まぐるしく動いています。

ここでは、DataStax社による(**Apache Cassandra**データベースを中心とした)生成AIへのアプローチに関する情報を、日本語による最速のアップデートを意図して、整理します。本稿については、できるだけ最新の情報を迅速に提供することを目的として、初回の発表以降も、適宜アップデートを予定しています。

## TL;DR (一言で言えばどういうことなのか)

長すぎる(Too Long)記事など読みたくない(Don’t Read)という方は、以下の3点、特に、3段論法の結論部分、が本項の趣旨となります。

– LLMモデルはステートレス
– LLMを活用した生成AIをビジネスに活用するためには、企業独自、かつ最新(リアルタイム)データの活用には、オンラインデータストア/データベースの活用が必須
– **大規模データのミッションクリティカル利用に秀でたApache Cassandraデータベースを生成AIアプリケーションに利用するための拡張が行われている**

以下は、上記の(二つの)前提

元記事を表示

開発ツールに頼らず 様々な言語から WebAssembly(第5回)

WebAssembly は多くのプログラム言語からライブラリの様に呼び出す事が出来る。
WebAssembly のコードを書く方法は多くの記事で書かれているが、その使い方はフレームワーク等のツールに頼っている事が多い様だ。
本記事では、そのような便利ツールに出来るだけ頼らず JavaScript, Rust, Python, Ruby から WebAssembly を実行する方法を記載する。

WebAssembly は新しい技術である。
目先の最先端ツールに飛びつくのもよいが、その基礎を学んで長く使える知識を身に着けないか?

本記事はシリーズの第3回である。シリーズ記事の一覧は [第1回] の **#シリーズ記事一覧** に載せている。シリーズの記事を追加する時は [第1回] の一覧を更新して通知を行うので興味の有る人は [第1回] をストックして欲しい。

# 本記事の概要と過去記事の復習

[第3回] と [第4回] は WebAssembly のコードに状態を持たせる方法について記載した。
今回は WebAssembly に「クラス変数」の様な物を追加するコードを紹介する。

元記事を表示

最も単純なデコレータ

#### 最も単純なデコレータ
“`py
def decorator(func):
return lambda *args: func(*args)

@decorator
def some_function(args):
pass
“`
デコレータは関数上の関数、つまり汎関数である。
今定義したデコレータ`decorator`はどんな処理もしない恒等写像である。

元記事を表示

StandFM #036 より「目で見るスタンドFM『読むアーカイブス』誕生!」

## 今回は「OpenAI API」を使ったテキスト化に挑戦!
### あれ、今までとは違う仕組み?

![バナー制作-正方形-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416622/6c1137c1-e333-c278-7e1e-b26e044d00e8.png)

実はいま…音声のテキスト化の新しい仕組みを導入しようか…検討中です。

なぜ、そう考えるのか…?

そのことを知るためには、この「読むアーカイブス」というコンテンツが、どんなフローで出来上がっているかを理解する必要がありますので、ちょとだけ種明かしをさせて頂きます。

1. スタエフの音声をダウンロード
2. ステレオミキサーで音声を再生し、Googleドキュメントの音声入力で、文字起こし
3. ご認識や表記の揺れを、ChatGPTを使って少しだけ整形
4. 手入力での修正、若干の表現の変更、段落分けなどの仕上げ作業

おおよそこの工程で行っています。スタエフの音声を、ほぼ全文丸っと掲載しているのも、このためです。中でも地味に工

元記事を表示

CDKでCross Region Referenceを実装してみた

AWS CDKを利用して、Cross Region Referenceを実装する方法について紹介します。なお、本記事では以前紹介したWAFとCloudFrontの構成を使ってCross Region Referenceを実装しています。前回は、Cross Region Referenceを実装するために、cdk-remote-stackというライブラリを使い、少し込み入ったコードを書いていました。今回は、Stackの引数にCross region用の値を渡すことで、実装する形をとっています。

過去に紹介したCloudFront+WAFの記事です。
[AWS CDK(ver.2)PythonでCloudFrontにWAFv2を紐づける](https://qiita.com/rm0063vpedc15/items/a719eaa99b7bcdf03d0c)

全コードはGithubを参照してください。
[Githubはここ](https://github.com/ShinyaT1994/test-cross-region.git)

## CrossRegionの実装
基本的なコードの内

元記事を表示

OTHERカテゴリの最新記事