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

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

matplotlibでクリックしたら、そこを通る3次近似式を書く

# 任意の3次近似式を書きたい(そんな人いないだろうけど)
色々な3次近似式の係数を求めたかったので、ちょっと作ってみた。
クリックしたら、点を追加して、追加した点群で近似式を求めて描画。
ついでに一定の幅を持った線も追加。

そのまま捨てるのももったいないので、公開。

“`python
%matplotlib widget

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.widgets as wg

fig = plt.figure(figsize=(20,5))
ax = plt.gca()
ax.set_xlim(-10, 110)
ax.set_ylim(-20, 20)
ax.set_aspect(“equal”)
plt.grid()

x0 = np.array([])
y0 = np.array([])
pLine0, = plt.plot(x0, y0, “x”)
pLine1, = plt.plot([], [], “-“)
pLine2, = plt.plot([],

元記事を表示

[Python][Selenium] webdriverの自動更新(webdriver_managerなし)

作ったプログラムの備忘録

# はじめに
* 社内LAN環境においてwebdriver_managerが上手く動かないので、webdriverのエラーが出た際にレジストリからバージョン確認して、webdriverを自動更新するようにした
* 需要はあまりないとは思うがメモとして記載
## 動作テスト環境
OS: Windows 10 Pro 64bit
言語: Python 3.9.13
ライブラリ:Selenium 4.7.2

# ソースコード

“`Python:Edgeでの場合の全体コード
import os
import winreg
import shutil
import urllib.request
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service

driver_path = ‘edgedriver_win64/msedgedriver.exe’
edge_serv

元記事を表示

Step Functions Distributed Mapで超高速な並列処理を実行してみた

## この記事で紹介していること

以前、投稿した[Lambda×Stepfunctions の繰り返し処理](https://qiita.com/yuken/items/36ca91c345919752fa4d)を環境へ展開した矢先、
re:invent2022で**Step Functions Distributed Map**が発表されました。(あと少し早ければ、、、)
この記事では、噂の新機能に関して紹介します!

– Distributed Mapとは?
– どんな処理が向いている?
– やってみた体験レポート

![Untitled (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2956558/0d9b63fa-3dca-cb15-15f8-e29c8ca9db0b.png)

## Distributed Mapとは?

Mapフローは以前からStep Functions にありました。
これまでのMapとの違いについてはAWS公式ドキュメントがわかりやすくまとめてくれています。

元記事を表示

[Python]先頭・末尾からn文字を取得

スライスはいいぞ。

# 先頭からn文字
Pythonの文字列は**インデックスに対応している**ので、リストと同じように要素が取得できる。

先頭の一文字のみであれば以下の通り。
“`py
>>> s = “hoge”
>>> s[0]
‘h’
“`

先頭からn文字を取得する場合はスライス表記を用いる。
このとき、**終点のインデックス番号は含まれない**点に注意する。

“`py
>>> s[0:3]
‘hog’ # 0-2の文字が取得される
“`

# 末尾からn文字
末尾から1文字の場合、**負のインデックス表記**が有効である。
Pythonでは、インデックスに負の値を指定した場合、**後方から数えた要素を取得する**ことができる。

“`py
>>> s = “hoge”
>>> s[-1]
‘e’
“`

末尾からn文字を取得したい場合、`s[-n:]`という表記で実装できる。
コロン`:`がない場合は「末尾からn文字目”だけ”を取得する」ため注意。

“`py
>>> s[-3:]
‘oge’
“`

元記事を表示

Elixir Livebook と Python Jupyter で画像・グラフの並べ方を比較する

## はじめに

Elixir Livebook は、ブラウザ上でコードを実行して結果を表示するツールです

https://livebook.dev/

![スクリーンショット 2023-01-04 14.58.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1485835/5bd8b69a-e158-0943-8d42-9706892fecfb.png)

画像もグラフも表も地図も簡単に表示できます

![ノートブックで画像表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1485835/faac7e0e-da1a-91c9-f0a1-9fc5bf55fae8.png)

![ノートブックでグラフ表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1485835/296f9887-f781-4b15-1e2c-f0abc99db2df.png)

元記事を表示

[Python]二次元配列を平坦化する

# 前提
この記事ではあくまで**単純な二次元配列**に限って扱っていく。
もっと多次元の配列、また階層にムラがある配列に関しては対応していない。

# 平坦化とは
“`py
[[1, 2], [3, 4]]
“`

みたいな二次元配列があったとき、これを

“`py
[1, 2, 3, 4]
“`

のように一次元にすること。

## 方法
**itertool(外部ライブラリ)** の関数を使う。
非破壊処理。

“`py
import itertools

l = [[1, 2], [3, 4]]
l = list(itertools.chain.from_iterable(l))
“`

ここで返される値は`iterable`オブジェクトであるため、適宜キャストする必要がある。

元記事を表示

やはり俺の情報教科書はまちがっている。

# 目次

– [はじめに](#はじめに)
– [個人を特定する情報が個人情報じゃない](#個人を特定する情報が個人情報じゃない)
– [デジタル署名は暗号化しない](#デジタル署名は暗号化しない)
– [TLS(SSL) は共通鍵を公開鍵で暗号化しない](#tlsssl-は共通鍵を公開鍵で暗号化しない)
– [TLS(SSL) が使われていれば安全じゃない](#tlsssl-が使われていれば安全じゃない)
– [変数は箱じゃない](#変数は箱じゃない)
– [Python 等は「ソースコードを 1 行ずつ実行するインタプリタ方式」じゃない](#python-等はソースコードを-1-行ずつ実行するインタプリタ方式じゃない)
– [日本語 1 文字は 2 バイトじゃない](#日本語-1-文字は-2-バイトじゃない)
– [動画が動いて見えるのは残像によるものじゃない](#動画が動いて見えるのは残像によるものじゃない)
– [標本化定理は「2 倍以上の周波数」じゃない](#標本化定理は2-倍以上の周波数じゃない)
– [その他いろいろ](#その他いろいろ)

# はじめに

2022 年か

元記事を表示

ユニークビジョンプログラミングコンテスト2022 冬(ABC283) A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

ユニークビジョンプログラミングコンテスト2022 冬(AtCoder Beginner Contest 283) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

更新時はツイッターにて通知します。

https://qiita.com/sano192/items/54accd04df62242b70f0

# ユニークビジョン株式会社様について

求人情報

https://jobs.atcoder.jp/offers/list?f.CompanyScreenName=uniquevision

# A Dif:8

https://atcoder.jp/contests/abc283/tasks/abc283_a

計算して出力するだけでOKです。
pythonではAのB乗を「A**B」と書きます。
もしコンテスト中に書き方がわからなければググりましょう。

入力の受け取り、出力がわからない方は以下の記事を参考にしてください。

https://qiita

元記事を表示

X線自己吸収と蛍光X線について地球試料と降着円盤の類似性を考えつつ python で計算してみた

# X線自己吸収について

X線による自己吸収、という言葉は分野によって定義が様々であるが、ここでは次の図に示したような、単純な一層の媒質にX線が照射した場合に、入射後に光電吸収して出射する単純な場合を考えます。

下記の記事の内容は、全て、google colab 上で動作するように、https://colab.research.google.com/drive/1tHsspwdMx_4vdbtKZ_gEeSDg89R7w7XX?usp=sharing を作成してますので、コードは [この記事のcolabの](https://colab.research.google.com/drive/1tHsspwdMx_4vdbtKZ_gEeSDg89R7w7XX?usp=sharing) を参照ください。

xraylib を使うことが前提なので、xraylib の動作方法などは、

https://qiita.com/yamadasuzaku/items/804ce5ffbd47d765116d

などを参考にしてください。

![xraylib_selfabs.png](https:

元記事を表示

数独の問題を Python で作成してみました – 見直要編

## 概要

正月休みに、5歳の孫がやっていた[「数独」](https://www.nikoli.co.jp/ja/puzzles/sudoku/)にハマってしまい、 9×9 の数独の問題作成をPythonで、、、、、っということで、試しにブランクなし(答えとなる)の表を作ってみました。

– 作成にあたって :
– Dataframe を利用してよりシンプル(同じロジック)に、、、
– 表の完成までにどれだけ時間がかかっても、今回は良しとする

– 作成方法 :
– まずは、1列目を作成
– 2列目以降は、列を追加するたびに、数値の行重複がないかをチェックする
– 行重複を確認するために、配列転換(行列の入替)を行った後、列での非重複数を確認
– 2,5,8列目に 2×3 の ブロック内での重複チェックを実施
– ブロック重複を確認するために、ブロック内の数値リストの数と、その数値リストから重複排除した数を比較確認
– 3,6,9列目に 3×3 の ブロック内での重複チェックを実施
– ブロック重複を確認するために、ブロック内

元記事を表示

PythonでExcel作った

# はじめに

データサイエンスで誰もがまず間違いなく扱うであろうテーブルデータ。[pandas](https://github.com/pandas-dev/pandas)や最近では[polars](https://github.com/pola-rs/polars)を使って解析・可視化する人も多いでしょう。一方で、データサイズがそれほど大きくないときは、インタラクティブに編集・プロットしたり、セルの中でちゃちゃっと平均とかを計算できるExcelの方が便利な場合が多いです。

[pandasGUI](https://github.com/adamerose/PandasGUI)というものもあるのですが、かなり操作性が悪いし、開発もそんなホットではないですね…

テーブルデータをExcelみたくいじりながら、いつでも`DataFrame`でデータを回収してPythonで解析できるソフトがあったらいいなあと思ったので、`tabulous`というのを作りました。この記事ではこれを簡単に紹介したいと思います。

https://github.com/hanjinliu/tabulous

元記事を表示

ヒューリスティックでSdoricaのモンスター探索を攻略!

# tl;dr

Sdoricaのモンスター探索のクイック編成機能が最良ではなさそうなので自分で最適化のスクリプトを作って検証した。

完全に仕様を解析できておらず正確ではないが、クエスト成功確率の計算を目的関数として再現し、貪欲法+乱択で最適化をおこなった。その結果、クイック編成を用いて得られるアイテムの利得を上回る結果が得られた。

あとGurobiを用いた検証も行ったが、クエスト成功確率の計算を入れ込むことに挫折した。

# execuse

この記事はソルバーを貶めるためのものではないのでご理解ください。

間違った記述や理解をしているところはありますが、そこはひとえに記事主の不勉強が原因なので、
何か参考にされる場合はこの記事の内容を鵜呑みにせず、しっかりと調べた上で検証してください。

# 初めに

## Sdoricaについて

https://www.sdorica.com/en/

[Wikipedia](https://ja.wikipedia.org/wiki/Sdorica)

詳しくはWikipedia見てください。

### モンスター探索の位置付け

メイ

元記事を表示

Pythonにおける2次元配列へのアクセス

Pythonでプログラムを組んでいると、2次元配列へのアクセスで混乱することがあるので、改めてまとめておきます。

# 2次元配列の種類
ここでは、以下の方法で2次元配列を扱います。
– リスト
– numpy
– DataFrame

# リストの場合
リストの場合は、正確には2次元配列ではない(多重リスト)のですが、そのように扱うこともできます。
“`python
list = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
# [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
“`
1つの値を取得する場合は、直接指定します。
“`python
value = list[1][2]
# value = 5
“`
スライスでの取得は、期待するようにできません。
“`python
# [[4,5], [7,8]]を期待するが...
new_list = list[1:][1:]
# new_list = [6, 7, 8]となる
“`
これは、まず
“`python
new_list1 = list[1:]
“`
で[[3, 4,

元記事を表示

【Python】Poetry で設定してFastAPIを使う環境構築

# はじめに

いろいろ version up をしたいのですが、ここではpoetry を使ったpython のコード開発の方法をはじめるための調査結果をメモしておきます。
おじさんがやりたかったのは、

– 1. WSL2(Ubuntu20.04), Linux (Ubuntu22.04)で開発。ターミナルとVisual Studio Code で。
– 1. python の仮想環境とパッケージ管理ができるのか
– 1. そのままDockerイメージ作れる

というこれまで virtualenv を用いていた環境をそのまま poetry, pyproject.toml で管理できるようにしたい、というのが目的です。
特に仮想環境が含まれるているのかよく分からない状態だったので、試してみました。できるかな。

# 内容

## 準備

poetry はインストールしなければなりません。本家の指示に従い、インストールするスクリプトを直接実行します。

“`
$ curl -sSL https://install.python-poetry.org | python3 –

$ poe

元記事を表示

PythonとGooglecolabを用いたデータ分析練習〜乳がんデータセットより〜

# はじめに

以前、PythonとGooglecolabを用いてデータ予測を体感した記事を書きました。

https://qiita.com/bluenouni/items/37020a02049eab1ab5fa

それから、データの予測だけではなく、データ同士の影響度についても勉強がしたい!
と思い、乳がんデータセットを用いてデータ分析してみました。

練習によかったので、ぜひ学習し初めの皆さんは参考にしていただけましたら幸いです。

データセットについてはこちらから

https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html#sklearn.datasets.load_breast_cancer

# Googlecolabを使用し、コード入力

①まずはデータセットをダウンロード

“`
#Scikit Learn ->http://scikit-learn.org/stable/modules/gener

元記事を表示

Pythonで始めるテストツール製作(3)シリアルポートのデータ送受信

## 1. はじめに
シリアルポートのデータ送受信ツールを作成し、Arduino治具のコマンド制御をRaspberry Piで手軽にできるようにします。

![Raspberry Pi and Arduino](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221758/89b4d0ab-4b0d-6687-39ad-21ccfe8891d9.jpeg)

### 1.1 これまでの記事
– [Pythonで始めるテストツール製作](https://qiita.com/pbjpkas/items/0b8a32e2b0e126fab8bc)
– [Pythonで始めるテストツール製作(2)オシロスコープの操作](https://qiita.com/pbjpkas/items/be69d2cb34eb7715170a)
– [Pythonで始めるテストツール製作 Menu Based CLI編(技術書典)](https://techbookfest.org/product/5348598382329856)

##

元記事を表示

HHKBプログラミングコンテスト2022 Winter(ABC282) A~D問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder

HHKBプログラミングコンテスト2022 Winter(AtCoder Beginner Contest 282) A~D問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。

その他のABC解説、動画などは以下です。

更新時はツイッターにて通知します。

https://qiita.com/sano192/items/54accd04df62242b70f0

# 株式会社PFU様
採用情報

https://www.pfu.ricoh.com/recruit/

# A Dif:7

https://atcoder.jp/contests/abc282/tasks/abc282_a

はじめに空の文字列を用意します。
Kが1以上なら”A”を付け足します。
Kが2以上なら”B”を付け足します。
Kが3以上なら”C”を付け足します。

これを”Z”までやれば答えが出せます。(【提出1】)

できなくはないけどちょっとめんどくさいですね。
楽をするなら文字コードを文字に変換するchrを使いましょう。
パソコン

元記事を表示

日本語言語モデルで現状最大規模を誇るdeberta-v2をQAタスク用にファインチューニングして公開してみた

こんにちにゃんです。
水色桜(みずいろさくら)です。
今回は現状日本語モデルで最大規模を誇る言語モデルdeberta-v2-base-japaneseをファインチューニングして、Question-Answeringタスクを解いてみようと思います。
作成したモデルは[こちらのサイト(Hugging Face)](https://huggingface.co/Mizuiro-sakura/deberta-v2-base-japanese-finetuned-QA)で配布しています。
初心者でも簡単に使えるようにしているのでぜひ使ってみてください。

https://huggingface.co/Mizuiro-sakura/deberta-v2-base-japanese-finetuned-QA

# 環境

torch 1.12.1
transformers 4.24.0
Python 3.9.13
sentencepiece 0.1.97

# deberta-v2-base-japaneseとは?

日本語Wikipedeia(3.2GB)および、cc100(85GB)、oscar

元記事を表示

小道具:ホスト名からIPアドレスを得る(getaddrinfo の動作確認)

### getaddrinfo の動作確認用です

getaddrinfo を使用して、ホスト名に対しする IP アドレスを表示します。

“`python:getaddrinfo.py
#!/usr/bin/env python3

import socket
import argparse

def get_socket_param(name):
if name in socket.__dict__:
return socket.__dict__[name]
return int(name)

def get_socket_name(prefix, value):
nprefix = len(prefix)
for key in socket.__dict__:
if (len(key) > nprefix and
key[:nprefix] == prefix and
socket.__dict__[key] == value):

元記事を表示

【時系列解析】ホワイトノイズ

時系列データのホワイトノイズ(白色雑音)の定義

“`math
R_0 = 1, R_k = 0 (k \neq 0)
“`
kはlag。lagが0の時は全てのデータは一致しているので自己相関は1、それ以外のlagでは自己相関が0になる時系列データのこと。

pythonでホワイトノイズを生成

平均0、標準偏差1のホワイトノイズ
“`python
mean = 0
sd = 1
x = np.random.normal(mean, sd, 300)
plt.figure(figsize=(12,4))
plt.plot(x)
plt.show()
“`
![スクリーンショット 2023-01-09 17.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2707093/d46a4159-794f-8985-b326-fb7ef30638e9.png)

自己相関を確認。
“`python
import statsmodels.api as sm
sm.graphics.tsa.p

元記事を表示

OTHERカテゴリの最新記事