Python関連のことを調べてみた

Python関連のことを調べてみた

PythonでWordの表を作成しカスタマイズする

表はWordの強力なツールであり、情報の整理、提示、分析に役立ちます。この記事では、Pythonを使ってWordで表を作成し、そこにデータを入れる方法と、表のスタイルを設定する方法を説明します。

## Python Wordライブラリ
Pythonを使用してWordでテーブルを作成または操作するには、まずサードパーティ製のライブラリ[**Spire.Doc for Python**](https://www.e-iceblue.com/Introduce/doc-for-python.html)をプロジェクトにインストールする必要があります。
pipコマンド:
>`pip install Spire.Doc`

## PythonでWordの表を作成する
“`python
import math
from spire.doc import *
from spire.doc.common import *

# Documentオブジェクトの作成
doc = Document()

# セクションの追加
section = doc.AddSection()

# 表を追加する

元記事を表示

python初心者です。

tkinterを使ったプログラミング練習でエラーが出てしまいます。何故でしょうか?ご教授願います。

実行環境 linux mint 21.3
開発言語 python3.9
エディタ VSCODE

実行コード

import tkinter as tk

#メインウィンドウ
root = tk.TK()
#タイトル
root.title(“初めてのtkiner”)
#ウィンドウサイズ
root.geometry(400*100)
#ラベル
label1 =tk.Label(root,text=”Pythonの世界へようこそ”,bg=”yellow”,fg=”green”)
label1.pack()
label2 =tk.Label(root,text=”Pythonはオブジェクト指向”, bg=”orange”)
label2.pack()
label3 = tk.Label(root,text=”tkinterでGUIアプリ”,bg=”pink”)
lable3.pack()

#メインループ
root.mainloop()

エラーコード
/bin/python3 /

元記事を表示

【FastAPI×React×Nginx×Docker】フロントエンドコンテナとAPIコンテナでやり取りができないときにしたこと

# 背景
フロントエンドはReactで開発し、本番環境はNginxで配信、バックエンドはFastAPIでWebアプリケーションを開発していました。
これを全てDocker上で動かしています。
コンテナは以下の4つです。
| コンテナ名 | ホスト側ポート番号 | コンテナ側ポート番号 | 処理 |
|:-|:-|:-|:-|
| db | – | 5432 | PostgreSQLを動かしている |
| backend | – | – | バックグラウンドで非同期で処理を走らせている |
| api | 8000 | 8000 | FastAPIを動かしている |
| frontend | 3000 | 3000 | Reactのビルドをした後にNginxでそのビルドファイルを配信している |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2906464/1284a168-95c6-b92b-049c-22695fbf4e0f.png)

# 実現したかったこと
jsファイルの中で、A

元記事を表示

アップデートされたAssistants APIを試す

# はじめに
本記事のタイトルをテーマに、社内勉強会で発表しました。
使用したスライドは以下です。

本記事では、Chatbotを使用して実際にAssistants APIを試した様子を記載します。
スライドに記載の通り、今回は主にfile_search、code_interpreter、スレッドによる会話履歴保持を試します。

Chatbotは以下記事を参考に作成しました。

https://note.com/nike_cha_n/n/n6110881d7c3e

Assistants APIについては以下です。

https://platform.openai.com/docs/assistants/overview

Assistants APIのv2のアップ

元記事を表示

AM変調をPythonでやってみた

こんにちは、無名です。
今回はAM変調をするコードをPythonで作っていこうと思います。
AM変調はラジオ放送(AMラジオ)や飛行機と地上との通信に使われています。
搬送波の振幅が入力信号によって変化します。

## AM変調の公式
AM変調の公式は搬送波をcos(2πfct)、入力信号をm(t)とした時、変調された信号s(t)は
$$s(t)=(Ac+m(t))⋅cos(2πfct) $$
になります。
これをPythonで書いていきます。

## コード
“`
import numpy as np
import matplotlib.pyplot as plt
import math

#パラメーター設定
pi = math.pi
f_s = 44100 #サンプリングレート
t_fin = 1 #終了時間(秒)
dt = 1/ f_s #サンプリング周期
N = int(f_s * t_fin) #サンプル数
t = np.arange(0, t_fin, dt)
fre1 = 100 #搬送波の周波数
fre2 = 5 #入力信号の周波数
A_s = 2 #搬送波の振幅

元記事を表示

dlib に 私の顔認証モデルが採用された

dlib の顔認証モデルに私の Taguchi model が採用されました。(2024/5/22)
dlib がトレーニングに使用した顔画像は300万枚です。
私がトレーニングに使用した顔画像は650万枚で、そのうち約47% が日本人の顔画像です。
従って、日本人の顔認証に限らず、欧米人の顔認証についても dlib と遜色ない精度があります。
MITライセンスなのでお気軽にご利用ください。

https://github.com/davisking/dlib-models

※↑最下段にある’Face recognition new model with Asian (mainly Japanese)’ 参照

## dlib の概略
>Dlibは、C++言語で書かれた汎用目的のクロスプラットフォームソフトウェアライブラリである。契約プログラミングとコンポーネントベースソフトウェア工学の考えに強い影響を受けている。そのため、第一に、独立したソフトウェアコンポーネントの集合という構成になっている。Boost Software Licenseの元に公開されているオープンソースソフトウェ

元記事を表示

DockerのCPUアーキテクチャの違いでハマった

# はじめに
DockerのCPUアーキテクチャ(`aarch64`と`x86_64`)の違いによってPythonの[`psutil`](https://github.com/giampaolo/psutil)ライブラリがインストールできず、それによってコンテナイメージのビルドが失敗したのでエラー内容と解決策を残しておきます。

# 実行環境
– MacOS M2チップ
– OrbStack
– `docker info`を打つと、アーキテクチャがaarch64になっている状態
“`bash
$ docker info | grep Architecture
Architecture: aarch64
“`

## Dockerfile
poetryを使って、後述の`poetry.lock`ファイルに定義されたライブラリをインストールする構成。
“`Dockerfile
FROM python:3.11-slim
WORKDIR app/
COPY . .
RUN pip install poetry
RUN poetry install –no-interactio

元記事を表示

bokeh: `MultiChoice` widgetを使って、特定の折れ線を目立たせる

# 環境
* Python 3.12.1
* bokeh 3.4.2

# やりたいこと
bokehを使って、10本以上の折れ線を描画しています。

“`python
import bokeh
import numpy
from bokeh.plotting import figure, output_file, save
import bokeh.palettes

x_data = numpy.arange(-20, 20, 0.1)
palette = bokeh.palettes.Category10[10]
fig = figure(x_axis_label=”x”, y_axis_label=”y”, width=600, height=400)

for i in range(10):
legend_label = f”y=sin(x + {i})”
fig.line(
x_data,
numpy.sin(x_data + i),
color=palette[i],
legend_labe

元記事を表示

データ分析における「交絡因子」

データサイエンスもとい統計学においてその学問の醍醐味は因果関係を見つけて最適なモデルを作る事だと私は考えているのですが、そこには避けて通れないものとして「交絡因子」という考えがあります。
# 交絡因子とは
原因と結果の関係に影響を与え、真の関係と異なった観察結果をもたらす第三の因子の事を指します。
## 相関と因果
相関では因果関係は語れませんが、相関には2種類あります。
– 因果のある相関
– 因果のない相関

ここで因果のない相関を分析する際に偏相関係数を使い疑似相関についてを過去に計算して発生しているか考察する記事を書きました。

https://qiita.com/murasaki1994/items/4cc1ba22fc9393b2e907

疑似相関では見かけ上の相関に対して第三の因子を考慮した偏相関係数を計算する事で考察しましたが、この言葉がまさしく交絡因子に似ている訳です。
例えばですが、有名な例で「アイスクリームの売上」と「溺死者数」は強い相関はありますが、当たり前ですが因果関係はありません。
それは「温度」という共通の因子がありこれによって見かけ上の相

元記事を表示

〈備忘録〉Socket.IOでpythonからlive2dモデルを動かす。

# はじめに

この記事では、Socket.IOライブラリを使用して、pythonから任意のlive2dmotionファイルをlive2dモデルへ適用した時の備忘録です。
説明やコードに未熟な点があるかと思いますがご容赦願いたいです。
私の環境はWindows10、vscodeです。

# 1.準備
初めにCubismSdkForWebと検索しLive2dCubism公式からダウンロードし、任意の場所に展開します。
その後、Samples\TypeScript\Demoのディレクトリ(以降もこのディレクトリで実行)で
“` npm install “`、“`npm build“`
を実行しパッケージダウンロードとビルドを行います。
“`npm serve“`
を実行します。
その後 ctri + F5 (もしくは Run → Start Debugging) でWEBの画面を表示します。
下記画像のようにモデルが表示されれば成功です。
(うまくいかない場合は、“`npm run build“`のようにrunを加えるなどしてみてください)
画像の歯車の部分でモデルを切り

元記事を表示

Yahoo!ローカルサーチAPIから情報をCSVで取得する【Python】

# Yahoo!ローカルサーチAPIとは

– 公式サイト:[リンク](https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/localsearch.html)
>Yahoo!ローカルサーチAPI(以下、ローカルサーチAPI)は、店舗、イベント、クチコミ情報などの地域・拠点情報(POI)を検索するためのAPIです。
>検索対象は、全国の店舗を網羅した電話帳データおよび店舗オーナーなどからの投稿データです。
>ローカルサーチAPIの主な機能は以下の通りです。
>・地域・拠点情報の名称および業種をキーワードで検索できます。
>・中心位置を指定して円範囲で絞り込めます。
>・矩形範囲を指定して絞り込めます。

# 本記事の作成動機

– 調べてみたいことがありデータ取得スクリプトを作成したのですが、特に地理情報を勉強されている初学者の方にとってお店の位置情報を可視化するのは楽しい気がします
– データのハンドリングに慣れていない人がなるべく手軽に試せるように、APIからデータ取得するサンプルスクリプトを共有しようと思いまし

元記事を表示

bokeh: 軸範囲を指定せずに、datetimeのデータ1個をプロットすると、軸の表示はマイクロ秒になる

# 環境
* Python 3.12.1
* bokeh 3.4.1
* pandas 2.2.2

# やりたいこと
横軸が日付である折れ線グラフを描画したいです。

以下のコードで折れ線グラフを描画できました。

“`python:sample.py
from bokeh.io import output_file, save
from bokeh.plotting import figure
import pandas as pd

df = pd.DataFrame({“date”: [“2024-01-01”, “2024-02-01”], “value”: [10, 20]})
df[“dt_date”] = pd.to_datetime(df[“date”])

fig = figure(width=400, height=400, x_axis_type=”datetime”)
fig.line(x=df[“dt_date”], y=df[“value”])
fig.scatter(x=df[“dt_date”], y=df[“value”])

output_fil

元記事を表示

【Flet】AmiVoice APIを使って「英語のハノン」アプリを作る

# はじめに
冒頭から私事で恐縮ですが、私は英語学習教材の一つとして「[英語のハノン](https://www.chikumashobo.co.jp/special/Eigo_no_Hanon/)」を愛用しています。
英語のハノンで繰り返し練習することで、英語スピーキングテストアプリ「[PROGOS](https://progos.ai/)」の「正確さ(Accuracy)」項目において当初「A2」レベルだった私が → 「B2」またはそれ以上をコンスタントにとれるまでになりました。
このような実体験としての効果から、私にとって英語のハノンは手放せない存在です。
(もちろんPROGOSにも感謝です!)

いつもはスマホの音楽再生アプリでやっているのですが、次項の「やりたいこと」がずっと気になっていました。

そんな折、株式会社アドバンスト・メディア様の「AmiVoice」の記事投稿キャンペーンが目に留まりました。
AmiVoiceは音声認識結果のテキストに加えて、単語単位で「[信頼度](https://docs.amivoice.com/amivoice-api/manual/user-g

元記事を表示

(HCI研究) 2要因のデータに行う分散分析の正規性の仮定について

:::note alert
記事の内容に不適切な箇所がありました。訂正箇所とコメント欄をご参照ください。
:::

# この記事について
この記事はHCI分野の研究室に所属している私が学部の研究のときに疑問に思ったことを調べ、メモとして残した記事です。
決まり文句ですが、私は統計学の専門家ではありません。記事の内容の使用についてはご自身の責任でお願いします。また、記事について何か不適切な点がありましたらご指摘頂けると幸いです。

# HCI研究における統計手法
HCI(ヒューマンコンピュータインタラクション)の分野では行った実験で得られたデータに対し、実験計画とデータの性質に合わせた統計手法を正しく適用して分析する必要があります。

私の研究室では過去の先輩が統計手法をできるだけ体系的にまとめてくださっていました。ネット上においては以下のサイトがよくまとめてくださっており、私も参考にさせて頂いています、ありがとうございます。

https://zenn.dev/tmizuho/books/3d511e017bfd23/viewer/810182

また、Jacob O. Wobbroc

元記事を表示

jsonファイルを編集して上書き保存する

“`py:sample.py
import json
import copy

def read_json(file_path):
with open(file_path, “r”) as file:
data = json.load(file)
return data

def write_json(file_path, data):
with open(file_path, “w”) as file:
json.dump(data, file, indent=4)

def edit_json(food_dict):
“””nameの値を小文字に変換”””
edited_data = copy.deepcopy(food_dict)

for data in edited_data.values():
data[“name”] = data[“name”].lower()

return edited_data

def main():
file_path =

元記事を表示

【Tips】英傑大戦のランキングを自動で取得する

# はじめに
私はSEGAの大戦シリーズ(三国志大戦、戦国大戦、英傑大戦)が好きで、三国志大戦から20年近くにわたりプレイしています。

現在は英傑大戦が絶賛稼働中となっております!
どのようなゲームかご存じない方は以下のサイトを参照ください。

https://www.eiketsu-taisen.com/

私は週2~3ぐらいのペースでプレイしているのですが、ただプレイするだけではなく「1か月前はどれぐらいだっけ?」とか、「〇日でどれぐらい順位が上がった!」といった日々のプレイ記録を残したいと思い、ラインキングを収集するコードを書いてみました。

# 注意事項
コードを動作させる場合、自己責任で使用してください。

# サンプルコード
“`
from requests_html import HTMLSession

# ※検索するURLを指定
# この例では福岡県ランキングのURLを指定し、ランキングを取得しています
url = ‘https://www.eiketsu-taisen.com/ranking/prefecture_region/#/national:38/’

元記事を表示

一旦listに変換した方が高速?

:::note info
Python 3.10.11 を使って実験しました。
:::

pythonにおいて、`tuple`, `max`, `min`, `sum`などは、iterableを引数にできるため、

“`python
tuple(range(10))
max(range(10))
min(range(10))
sum(range(10))
“`

のように書くことが可能だ。一方で、書き方として`tuple(list(range(10)))`のように一旦listに変換してから`tuple`や`max`を使っても文法上は問題ない。しかし、listへの変換が挟まるのだから微差とは言え遅くなるだろうと直観的には考えられる。

“`python
%%timeit
max(range(10000))
“`
205 µs ± 8.12 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)

“`python
%%timeit
max(list(range(10000)))
“`
221 µs

元記事を表示

CTスキャンの原理でString Artを描く

# はじめに
突然ですが、皆さんは以下の画像のような作品をYouTubeなどで見かけたことはありますでしょうか?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501281/a12f67b8-c54d-d004-200b-f3da088a812d.png)
有名な舌を出したAlbert Einsteinですね。
しかし、よく見ると円周上の点同士を結んだ線のみで描かれていることが分かります。
YouTubeで「**String Art**」や「**Thread Art**」などと調べると、実際に糸を板に打ち付けた釘へとくくりつけて、このような作品を作成している様子を見ることができます。

https://www.youtube.com/results?search_query=string+art

初めて見たときにはとても人間業とは思えず、世界にはとんだ天才も居るものだと思いましたが、その実、計算により糸を張る手順を得ていたのでした。

今回は、そんな**String Art**をCTの

元記事を表示

ビットコイン・バブル・インデックス

# 罪滅ぼし
Bitcoin Bubble IndexがツイッターのAPIの変更のせいで使えなくなってるにも関わらずそれに気づかず延々とこのインジケーターを推してしまっていたので大反省してちゃんと使えるインジケーターに自分で修正しました。

https://x.com/daniel_tanaka_/status/1792854806404497417

# 元データ

Chao Maが作ったインジケータでGitHubにて公開されています。今回これを参考にコードを準備しました。

https://github.com/aksnzhy/bitcoin-bubble-index

# バブル・インデックスのコード

データを取得する部分はオリジナルコードとGoogleTrendsを利用しました。

“`bash
import requests
from bs4 import BeautifulSoup

url_price = ‘https://bitinfocharts.com/comparison/bitcoin-price.html’
url_sentaddr = ‘https:/

元記事を表示

ベクトルデータベースを15分で実装しRAGを語れるようにする(初心者向け)

# はじめに
本記事では、ベクトルデータベースの構築とRAGでの検索を初心者向けにまとめています。
GoogleColaboratory環境で実装するため、ややこしい環境設定はほとんどありません。全部無料です。

生成AIやRAG、ベクトルデータベースは難しいイメージを持つ人が多いですが、実はとてもシンプルで実装も簡単です。15分程度で実装できるようになり、かつ語れるようになると思います。

# ベクトルデータベースとは?
ここからざっくり分かりやすく説明します。イメージを掴むことを優先します。
#### まず普通のデータベースについて
普通のデータベースには数字のデータが入っておりSQLで必要な情報を抜き出すことができます。例えば、ある顧客の1年間での売り上げ金額を取得したりできます。

#### ベクトルデータベースとは?
一方で、PDFファイルなどの文字情報を検索したい場合はどうすれば良いでしょうか?例えば、100ページに渡る論文の中から特定の情報を知りたい時などです。一枚一枚目視をしていては日が暮れます。
そのような場合に使うのがベクトルデータベースです。大量の文字情報をチャン

元記事を表示

OTHERカテゴリの最新記事