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

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

【Azure OpenAI】ChatGPTのレイテンシをどうにかしたい

# ChatGPT呼び出しの速度が安定しない
どうにもこうにもレイテンシが安定しないです。LLMの特徴なのか複雑な指示や長文回答を要求すると遅くなるみたいですし、それだけでなく基盤が繁忙なのか突然リクエストが遅くなったり500エラーが返ったりすることもありますよね。
(**ただ安定するときはとても安定しているので、もっと安定すれば今回の検証はそもそも不要かもです。というか、不要になったらいいなぁ。**)

なお、Azure OpenAI ServiceはSLAはあるものの、[レイテンシに関するSLAはありません。](https://learn.microsoft.com/ja-jp/azure/ai-services/openai/faq#azure-openai—-api—–sla—————)ぬぐぐ。

なので、アプリに組み込むのであればタイムアウト&リトライが必須ですよね。でもそういえばAzure OpenAIはマルチリージョンでリソースが作れるので、それで何とかできないなか?という気持ちでマルチリージョン並列呼び出しを試してみました。

コストが掛け

元記事を表示

x2+y2=1のときz=2x+yの範囲「立教大学2023年経済学部第1問(2)」をChatGPTとMathematicaとWolframAlphaとsympyでやってみたい。

**パイソニスタの方へ**
???<解1>円と直線の位置関係の**solve_poly_inequalityの使い方**を教えて下さい。???

# オリジナル(youtube)

上と同じです。大学入試数学問題集成>
未登録

# xxxx ChatGPT で(できませんでした。) xxx
入力文
“`
x2+y2=1のとき2x+yの範囲
“`

# Mathematicaで
“`
In
MaxValue[{2 x + y, x^2 + y^2 == 1}, {x, y}]
MinValue[{2 x + y, x^2 + y^2 == 1}, {x, y}]
ArgMax[{2 x + y, x^2 + y^2 == 1}, {x, y}]
ArgMin[{2 x + y, x^2 + y^2 == 1}, {x, y}]

Out
Sqrt[5]
-Sqrt[5]
{2/Sqrt[5], 1/Sqrt[5]}
{-(2/Sqrt[5]), -(1/Sqrt[5])}
“`

作図

元記事を表示

Gauge Pythonでgauge run specsをするとTypeError: Descriptors cannot not be created directlyエラーが出る

# はじめに

初めてGauge Pythonを実行する機会があり、起動がうまくいかなかったのでまとめます

# 問題

PythonでGaugeを実行したところ以下のエラーが出ました

“`
$ gauge run specs
“`

“`
Traceback (most recent call last):
File “/home/watanabejin/.gauge/plugins/python/0.3.17/start.py”, line 11, in
from getgauge import handlers, logger, processor
File “/home/watanabejin/workspace/test/.venv/lib/python3.10/site-packages/getgauge/handlers.py”, line 4, in
from getgauge import logger, processor
File “/home/watanabejin/workspace/test/.venv/lib/p

元記事を表示

山下達郎「DAYDREAM」をMatplotlibで視覚化する

はじめに

最近(2023年7月)、巷間を賑わせている山下達郎さんですが、
1980年発表のアルバム「RIDE ON TIME」所収の「DAYDREAM」という曲があります。
(作詞:吉田美奈子 作曲;山下達郎)

作詞の際に、アクリルカラーチャートを見ながら、色の名前をメロディに当てはめていった、というエピソードが示す通り、実に色彩感覚に溢れた楽曲となっております。

私は以前にどこかで、この楽曲について「1番から3番へと歌詞に進むに従って、暗い色から明るい色へとグラデーションしている」という指摘をするコメントを読んで感心したのですが、曲を聞きしなに思い描いてみてはいたものの、実際にどのような色が登場しているのかが、少し気になっていたところでした。

そこで、甚だ不粋ではありますが、Matplotlibの練習を兼ねて、グラフィックで表現できないか、と思い立ち、チャレンジしました。

目的

  • matplotlibおよびpythonへの理解を深める
  • 「DAYDREAM」の色彩感を視覚化
  • 元記事を表示

    「Reflex(旧Pynecone)」があればPython 100%でWebアプリ作れるってマジ!!

    # TL;NR;

    [Reflex(旧称はPynecone)](https://reflex.dev/)っていうフレームワークを使うと、Pure PythonでかなりモダンなWebアプリが作れる。
    [2022年12月から開発が始まった](https://github.com/reflex-dev/reflex/graphs/code-frequency)ばかりのようで日本語の記事が全然見つからないからサンプルコード組んでみた。

    個人の雑感だけど、公式に”Build anything, faster.”を謳ってる通り、コントロールのデザインが柔軟な上にレイアウトの種類がかなり豊富で、けっこう無理のきくページデザインができそう。
    フルスタックなわりに初期化作業が簡単で取っ付きやすいし、データベースやコンポーネントも標準でしっかり用意されてて[“Battery Included”](https://docs.python.org/ja/3/tutorial/stdlib.html#batteries-included)な感じを受けた。

    ただし新しすぎて検索しても情

    元記事を表示

    Leetcode 543. Diameter of Binary Tree

    # Problem
    この問題は、バイナリツリーにおける直径(ツリー内の任意の二つのノードを結ぶ最長のパス)の長さを求めるものです。ここでのパスとは、2つのノード間のエッジ(ノードを結ぶ線)の数を指します。
    > Given the root of a binary tree, return the length of the diameter of the tree.

    InputとOutputの例は次になります。

    “`
    Input: root = [1,2,3,4,5]
    Output: 3
    Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3].
    “`
    ![image](https://assets.leetcode.com/uploads/2021/03/06/diamtree.jpg)

    https://leetcode.com/problems/diameter-of-binary-tree/description/

    ## Key Idea
    深さ優先探索(DFS) を使用します。これは、各ノードで左

    元記事を表示

    競プロでPythonを使用している人はChatGPT(GPT-3.5)を使用して悩みのTLEを解決できるかもというお話

    ## はじめに
    以前ChatGPTを使用してAtCoderの問題を解いてもらう記事が話題になったのはご存じでしょうか。

    https://qiita.com/autotaker1984/items/2929937cd1fea6137d1f

    その中の活用方法の一例として軽く触れられているものがありました。
    >「このPythonコードをC++で書き直してください」

    競プロについて、別の言語に置き換える意味は薄いように思われるかもしれませんが、Python使いは話が変わってきます。嗜む程度に競プロに参加しているPythonerは一度くらい、処理速度の問題で想定解でもTLEをして辛酸を嘗める経験をしていると思います。C++を使いなよと忠言されても **「おれには、これしかないんだ! だから、これがいちばんいいんだ!!」** [^1] と言うしかない状況でした。[^2]

    [^1]:パイロットハンター読んだことないですがこのセリフだけは知っています。心に響きます。
    [^2]:この記事書いてて、C++使えばいいだけにも思えてきましたがきっと気のせいです。

    yukicoderのコンテスト参

    元記事を表示

    【Python】Pandasを利用して、同じ数値から始まる二つのCSVファイルの中身を一瞬で結合する方法

    # 概要
    同じ数値から始まる二つのCSVファイルの中身を、横方向(列方向)に結合するコードを実装しました。

    ### 前提
    `hoge`ディレクトリにある`XXX_output.csv`と、`foo`ディレクトリにある`XXX_2_output.csv`を結合して、一つのCSVファイルを作成します。`XXX`には同じ数値が入ります。

    “`
    例:

    1234567890_output.csv
    1234567890_2_output.csv

    結合

    1234567890_data.csv
    “`

    結合して作成されたCSVファイルは、ディレクトリ`combined`に`XXX_data.csv`の形で保存するものとします。

    # サンプルコード解説

    “`py
    import os
    import pandas as pd

    hoge_dir = ‘hoge’
    foo_dir = ‘foo’
    combined_dir = ‘combined’

    # 出力先ディレクトリを作成
    os.makedirs(combined_dir, exist_ok=True)

    # hogeディレクトリ

    元記事を表示

    ChatGPT For Python

    ## はじめに
    – 当記事ではpythonでOpenaiを使って、ChatGPTの機能を実現する方法を紹介する
    – 参考先:https://fuji-pocketbook.net/chatgpt-api-python/

    ## openaiライブラリをインストール

    – ターミナルで以下のコマンドを打つ
    – 前提条件:ローカルにpip、pythonインストールされていること。
    “`コマンドフロント
    pip install openai
    “`
    ## pythonコードを書く。
    – ライブラリのimport
    “`python
    import openai
    “`
    – apiキーの設定
     - https://platform.openai.com/account/api-keys で設定したAPIキー

    “`python
    import openai

    # openaiのキーを設定する
    openai.api_key = “sk-xxxxxxxx”
    “`
    – `ChatCompletion.create`でAPIを呼び出す
    – リクエストパラメタ設定
    – responseで

    元記事を表示

    tan((x+y)/2)の値「2023山口大学後期理学部物理情報科,化,生物学科【1】」をChatGPTとMathematicaとWolframAlphaとsympyでやってみたい。

    (2)について。**出題者のやさしさ?がでている問題文でした。**    
    ・勉強不足の人のためには、WolframAlphaの解説あり。
    ・オーソドックスな解法の勉強をしている優秀な受験生には、
     正弦定理の隣の?**正接定理**がありました。
     ?>ただ,全く役に立たないので高校数学では習いません。(高校数学の美しい物語)様参考より

    (1)がわからなくても(2)で**部分点**がもらえるかも。
    ○○場の馬鹿力で、試験場で気づいた方がおられたかもしれません。
    種明かしは、ページ終盤にあり。

    オリジナル T氏の数学日記 様より

    https://mathmathmass.exblog.jp/33360116/

    上と同じです。大学入試数学問題集成>【1】テキスト

    https://mathexamtest.web.fc2.com/2023/202310741/2023107410300mj.html#top-0305

    # xxxx ChatGPT で(できませんでした。) xxx
    入力文
    “`
    x,yを実数とする.
    sin(x)+sin(y)=(1+sqrt(3))/2,cos

    元記事を表示

    Amazonエンジニアの年収上限が4000万円にアップした背景まとめてみた

    ![pasted image 0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3456084/0073f1e8-5257-e7f4-1e8a-4a853b3e8a23.png)
    https://oceans.tokyo.jp/article/detail/36460

    2022年2月からアメリカのAmazonで働くエンジニアや管理部門で働くスタッフの基本給の上限が4000万まで引き上げされたのなんで?と思ってまとめています!!

    しかもこの4000万に引き上げられたのは、マネージャー、ディレクターなどの管理職を除く一般社員だというから驚きです。。
    基本年収の他にも、入社時の一時金や譲渡制限付株式ユニットなども含まれるため、実際の支給額はさらに増える見込みで、改善前と比べると約2倍の給料増額になっています。。

    Amazonすごい!ってなるところですが、実はこれでも他Apple、Googleなどのライバル企業に比べると若干劣勢になるのだとか。
    他大手の企業も特別賞与を支給したりしているそうです。

    ##

    元記事を表示

    python maya current camera

    “`python
    import maya.cmds as mc

    def camLock():
    currentMP = mc.playblast(activeEditor =True)
    currentMP = currentMP.split(“|”)[-1]
    currentCam = mc.modelPanel(currentMP, q=True, camera=True)
    currentCamShape = mc.listRelatives(currentCam)
    print(currentCamShape)
    focalLength = mc.getAttr(“{}.focalLength”.format(currentCam))
    print(focalLength)
    aperture = cmds.getAttr(currentCam + ‘.cameraAperture’)
    print(aperture)

    camLock()
    “`

    元記事を表示

    【django】テンプレートエンジンを使ったwebページの動的生成方法

    ## djangoのテンプレートエンジンとは?

    djangoのテンプレートエンジンは、webページの動的生成を行うために使用される重要な機能の1つです。テンプレートエンジンを使うことにより、htmlやcssなどの静的なコードに対して、動的な要素を組み込むことができます。これにより、同じデザインのwebページでも、異なるデータを表示することが可能になります。

    djangoのテンプレートエンジンは、独自のテンプレート言語を使用しています。このテンプレート言語を使うことで、簡潔で分かりやすいテンプレートを作成することができます。また、テンプレート内で変数や条件分岐、繰り返し処理などを行うこともできます。

    ## テンプレートを使ったwebページの基本的な構成と書き方

    djangoでテンプレートを使ったwebページを生成するためには、まずテンプレートファイルを作成する必要があります。テンプレートファイルは、htmlファイルとして作成しますが、拡張子は`.html`ではなく`.html`とします。

    以下は、基本的なテンプレートファイルの構成例です。

    “`html

    元記事を表示

    【django】管理サイトの使い方:データの追加や編集、削除方法

    ## djangoの管理サイトの概要と設定方法
    djangoの管理サイトは、データの追加や編集、削除などの機能を提供するための強力なツールです。初心者エンジニアの方にとっては、データベース操作の知識がなくても簡単に操作することができるため、非常に便利です。

    管理サイトを使うためには、まずdjangoプロジェクトを作成する必要があります。以下のコマンドを実行して、新しいプロジェクトを作成します。

    “`python
    django-admin startproject mysite
    “`

    このコマンドを実行すると、`mysite`という名前の新しいプロジェクトが作成されます。次に、管理サイトを有効にするために、プロジェクトの`settings.py`ファイルを編集します。

    “`python
    installed_apps = [

    ‘django.contrib.admin’,

    ]
    “`

    `installed_apps`リストに`django.contrib.admin`を追加することで、管理サイトを有効にすることができます。

    ## モ

    元記事を表示

    pythonライブラリEasyOCRをWindowsにインストールする

    # EasyOCRとは
    まずOCRとは(Optical Character Recognition/Reader)の略称で、文字をカメラや写真から読みとり、コンピュータが利用できるデジタルの文字コードに変換する技術のことである。
    EasyOCRはGitHubで公開されているPython用のOCRである。
    EasyOCRをインストールして実装まで何度かエラーが発生したのでメモ。

    https://github.com/JaidedAI/EasyOCR

    ## EasyOCRの環境構築

    環境
    python 3.9.2
    pyenvにて環境構築
    windows 10 22H2

    こちらのサイトをもとにインストール

    https://camp.trainocate.co.jp/magazine/about-easyocr/

    pipでインストール
    ~~~
    pip install easyocr
    ~~~

    上記のサイトではeasyocr\utils.pyの
    ~~~python
    img_cv_grey = cv2.imread(image, cv2.IMREAD_GRAYSCALE)
    ~~~
    をコ

    元記事を表示

    [Matplotlib]複数グラフでcolorbarを共有する

    表題のままです.
    少し面倒だったのでメモ.

    下のグラフを作りたい方は参考にしてくださればと思います.

    ![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669376/0b3f51ec-5bcc-41d9-12c0-e90039e5f644.png)

    コード.
    ~~~python
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib as mpl

    fig,axes = plt.subplots(2,2,figsize=(6,4),
    sharex=”col”,
    layout=”constrained”)
    for ax in axes.ravel():
    ax.set(xscale=”log”,yscale=”log”)

    N = 20
    norm = mpl.colors.LogNorm(vmin=2**0,

    元記事を表示

    Pandas-profilingユーザに朗報

    ## Pandasの3倍速く、日本語カラム名も文字化けしない ビッグデータ向けプロファイリングツール 『Zarque-profiling』 の紹介
    Zarque-profilingは、Pandas-profiling (ydata-profiling) をベースに、Pandasの代わりにPolars(超高速データフレームライブラリー)をデータ処理エンジンに使用して解析処理の高速化を図っています。また、日本語カラム名が豆腐(❏❏❏❏)に文字化けしないよう日本語フォントを指定できます。

    Zarque-profilingの機能と使い方は、データフレームがPolarsになる以外は、Pandas-profilingと同じです。Pandas-profilingユーザは容易に使用できるので、データが大きく解析処理に時間が掛かっている場合や日本語カラム名が文字化けして困ってい時は すぐに試してみて下さい。

    インストール・使い方は ここ⇒ [GitHub Zarque-profiling README](https://github.com/crescendo-medix/zarque-profil

    元記事を表示

    「Python で学ぶ音声合成」のメルスペクトログラムの合成を transformer で行うように改修した。

    ## はじめに

    以前に第一報

    https://qiita.com/toshiouchi/items/994104236216fcf97cc2

    で報告しましたが、「Python で学ぶ音声合成」(教科書)の Tacotron2 でメルスペクトログラムを合成するプログラムを、LSTM から Transformer に改修したので、その後を、報告させていただきます。報告する内容は、学習の概略。合成した音声。合成したメルスペクトログラム。Stop Token では合成音声の終端が検出できず工夫したこと。プログラムです。

    ## 学習の概略。

    学習は、Python で学ぶ音声合成の Tacotron2 の学習に準拠して行った。学習データは、JSUT ver 1.1 の 5000 発話のうち、4700 がtrain、200が development、100 が test です。Epoch は 2900 で、batch_size = 32 です。steps_per_epoch は train が 147で、development が 7 です。train についての loss と steps

    元記事を表示

    地図座標単位変換

    ## 地図座標単位変換
    dd.mm.ssの変換はChatGPTでもいけたのですが、dd.mm.ss.sssはプロンプトが悪いのかうまくできなかったので。

    “`:python
    # 60進法を度に変換する関数
    def convert_to_degrees(coord):
    degrees, minutes, seconds, sss = map(float, coord.split(‘.’))
    seconds = seconds + (sss/1000)
    return degrees + minutes / 60 + seconds / 3600

    print(convert_to_degrees(‘34.68.44.100’))
    “`

    ※座標はダミーです

    元記事を表示

    初心者でもAtcoder茶色に行きたい。

    はじめまして。**こんとらりあん**と申します。
    初執筆なので読みにくいところも多々あると思いますが、ご容赦ください。

    # 自己紹介
    早速なんですが、自己紹介を軽くさせていただきます。
    ・現在25歳で、大学を卒業し、2年ちょっとがたちました。
    ・社会人ですが、IT、エンジニアといった職種や業界とは全く別世界にいます。
    ・しかし、エンジニア、ざっくり言えばIT業界に興味があり、とりあえずプログラミングも勉強しようと思い立ちました。
    ・今後はITの世界で働きたいと思っています。

    # 過去のプログラミング歴
    使用言語は**Python**です。
    大学生の頃にほんのちょっとだけ独学で学習しましたが、すぐ折れました。
    HTML&CSSについても少し触った経験はあります。
    あとは、卒業論文でSPSSという統計ソフトを使いました。これはプログラミング関係ないですが。

    半年ほど前から、Pythonを学び直しています。
    Udemyを使って学んでいたのですが、ある時Atcoderというものに出会いました。

    どうやら競技プログラミングというものらしく、
    基礎的なコーディングの知識からアルゴリズムの

    元記事を表示

    OTHERカテゴリの最新記事