Python関連のことを調べてみた2022年12月28日

Python関連のことを調べてみた2022年12月28日

[python] ISO8601 UTC文字列からJST datetime変換

# pythonでUTC文字列をJST datetimeへ切り替える方法

“`python:
from datetime import datetime, timezone, timedelta

str_utc = ‘2022-12-05T04:58:38Z’
dt_jst = datetime.strptime(str_utc, ‘%Y-%m-%dT%H:%M:%SZ’).replace(tzinfo=timezone(timedelta(hours=0))).astimezone(tz=timezone(timedelta(hours=+9)))
print(‘{}’.format(dt_jst.strftime(‘%Y-%m-%d %H:%M:%S %z’)))
“`
以下出力
“`
2022-12-05 13:58:38 +0900
“`

1. strptimeだとtimezoneが付けられないので[replace](https://docs.python.org/ja/3/library/datetime.html#datetime.datetime.repla

元記事を表示

アルゴリズム実技検定(PAST) 第11回 G問題 Python解答例(木の判定)

Supershipの名畑です。
今年も残り3日半ですね。

前回の記事[アルゴリズム実技検定(PAST) 第11回 F問題 Python解答例](https://qiita.com/nabata/items/397d916545e6d74926e3)の続きです。
アルゴリズム実技検定(PAST)の過去問シリーズです。第11回G問題の私の解答例(Python3)を公開します。

:::note info
そもそもアルゴリズム実技検定ってなんですか? という方は[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee70ad)をご覧いただけますと幸いです。
:::

## 第11回 G問題 木の判定

### 問題

[G – 木の判定](https://atcoder.jp/contests/past202206-open/tasks/past202206_g)

### 言語

– Python (3.8.2)

### 解答例

グラフにおける木の条件を

元記事を表示

GANのシンプルな理解と実装

GAN(Generative adversarial networks)(敵対的生成ネットワーク)を私なりになるべくシンプルに理解してなるべくシンプルに実装しました。

## ニューラルネットワーク

ニューラルネットワークというものをご存じでしょうか。これは、あるベクトルを別のベクトルに変換するモデルです(本当はベクトルではなくテンソル)。そしてこれは**学習**することができ、学習が完了したニューラルネットワークは、入力したベクトルに対して適切なベクトルを出力することができるようになります。
例えば、「手書き数字の画像(各画素の濃淡の値を一列に並べたベクトル)を入力すると、何の数字か(0~9までの各値の確率を一列に並べたベクトル)が出力される」といった感じです。
![NN.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2235373/42558a3a-7239-f80d-a13e-eedd9ad88ad4.jpeg)

## 画像生成

ニューラルネットワークは分類や回帰の問題を解くことが出来ますが

元記事を表示

[Python] SeleniumでXPathによる動的ID, Classの取得

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

# はじめに
* Seleniumでスクレイピングをする際にIDやClassが動的に変わるサイトに遭遇
* 直接ID, Class指定ができないので、他の要素などからIDを取得する方法を検討した
* 他のサイトにも有効な手段かどうかは不明だが、メモとして記載
## 動作テスト環境
OS: Windows 10 Pro 64bit
言語: Python 3.9.13
ライブラリ:Selenium 4.7.2

# サンプル
“`HTML:Yahoo Japan トップページ ニュース部抜粋

主要 ニュース

ABC283で強制unratedの対象になった理由

### はじめに
[ABC283](https://atcoder.jp/contests/abc283)において、強制的にunratedとなった218人の内の一人になりました。

atcoderが強制unratedの措置を行った理由は、D問題において不正なテストケースが使われたとのことで、強制unratedは**不備のある該当テストケースのみにおいて、他と違うジャッジステータスが出てしまっている**参加者のみが対象だということです。[^1]
[^1]:https://atcoder.jp/posts/951

この記事では、私が強制unratedになった理由、具体的にはD問題において不正なテストケースにだけREしてしまった理由を説明します。

### D問題
問題文は https://atcoder.jp/contests/abc283/tasks/abc283_d にありますが、少し長いので、ここでは記事の趣旨を優先させて詳細は省きます。

まず、この問題では唯一の入力として文字列Sが与えられます。Sは英小文字と丸括弧`(`,`)`からなる文字列で、そして、**丸括弧は正しく閉じら

元記事を表示

Netlify で No such file or directory となって困ったら

[Netlify で UNSUPPORTED BUILD IMAGE となって困ったら](https://qiita.com/ganessa/items/36e128e2f1854ea4ed24)を対応すると以下のような出力となり、ビルドに通らなくなってしまいました。

“`
10:51:09 AM: /opt/build-bin/run-build-functions.sh: line 351: /opt/buildhome/python3.7/bin/activate: No such file or directory
“`

[Included Software](https://github.com/netlify/build-image/blob/focal/included_software.md)を確認すると、以下のようになっていました。

“`
Python – PYTHON_VERSION, runtime.txt, Pipfile
3.8 (default)
2.7
“`

以下のように変更すると、無事ビルドが通りました。

“`diff:runtime

元記事を表示

python-pptxで テキストの見た目を保持しつつ文字を変更する

# 結論

“`python
import pptx, re
from pptx.util import Cm, Pt, Inches

self.replace_text(‘置き換えられる文字列’, ‘置き換える文字列’)

def replace_text(self, before, after):
for shp in self.slide.shapes:
if shp.has_text_frame:
if before in shp.text:
new_text = re.sub(before, after, shp.text)
self.replace_paragraph_text_retaining_initial_formatting(shp.text_frame.paragraphs[0], new_text)

def replace_paragraph_text_retaining_initial_formatting(self, paragra

元記事を表示

Pillow10で削除される「getsize」を「multiline_textbbox」で置き換える

# 結論
“`python
self.draw.font.getsize(‘string’)

self.draw.multiline_textbbox([0, 0], ‘string’) #の2,3番目
“`

# getsize

“`python
self.draw.font.getsize(‘string’)

>> (138, 44)
“`

# multiline_textbbox

“`python
self.draw.multiline_textbbox([0, 0], ‘string’)

>> (0, 9, 138, 44)
“`

# 参考

https://pillow.readthedocs.io/en/stable/reference/ImageFont.html#PIL.ImageFont.FreeTypeFont.getsize:~:text=%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E3%82%BF%E3%83%97%E3%83%AB-,getsize,-(%20te

元記事を表示

U-netを用いたセマンティックセグメンテーションの開発

# 目次
[1.はじめに](#1-はじめに)
[2.自己紹介](#2-自己紹介)
[3.本テーマに至った経緯](#3-本テーマに至った経緯)
[4.モデル制作](#4-モデル制作)
[5.HTML,CSS制作](#5-HTML,CSS制作)

# 1. はじめに

AIプログラミングに興味を持ちスクールで学ぶことにしました。
そこで学んだことの一部をまとめたいと思います。

# 2. 自己紹介

私はAIプログラマーへの転職を考えておりAidemyさんで学ぶことを決めました。プログラミングをそれほどしたことがなかったのでほぼゼロから学んでみました。

# 3. 本テーマに至った経緯

ディープラーニングでは音声や画像の認識、自然言語処理などの分野で発展がめざましく、これらの技術は企業のDX、セキュリティー、自動運転、医療など様々な応用の可能性があります。私にとってはどれも魅力的でありいろいろやってみたいのですが、今回は画像処理のセマンティックセグメンテーションについてその手法も探りながら開発してみたいと思います。セグエンテーションの例を示します。

![seq_ex2.png](htt

元記事を表示

Pythonでjsonlを読み書きする

## [jsonl](https://jsonlines.org/)とは
改行区切りの1レコードがjsonになっているデータのことです。
こんなデータ↓

“`json
{“name”: “Gilbert”, “wins”: [[“straight”, “7♣”], [“one pair”, “10♥”]]}
{“name”: “Alexa”, “wins”: [[“two pair”, “4♠”], [“two pair”, “9♠”]]}
{“name”: “May”, “wins”: []}
{“name”: “Deloise”, “wins”: [[“three of a kind”, “5♣”]]}
“`

## pandas使わない方法
### ファイル読み込み
“`python
import json
with open(‘hoge.jsonl’) as f:
jsonl_data = [json.loads(l) for l in f.readlines()]
“`

### ファイル出力
“`python
with open(‘fuga.jsonl

元記事を表示

【Python SDK v2】Azure AutoMLで作ったモデルをPythonからデプロイする

# はじめに
[前回](https://qiita.com/kkawano_neko/items/d7be826d7bb97400bf4e)PythonからAzure AutoMLを使ってトレーニングを行いました。今回はトレーニングしてできたモデルをデプロイしてみようと思います。

# 開発環境
+ OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
+ Visual Studio Code 1.73.1
+ Python 3.9

# モデルの登録
まずは前回トレーニングしたジョブの中で一番精度が良いモデルのパスを取得します。
そのためにはまずジョブの名前(ジョブID)、モデル名が必要となります。

## ジョブIDの取得

前回のトレーニング時にジョブの返り値をprintするようにしていました。

“`train_model.py
returned_job = ml_client.jobs.create_or_update(classification_job)
print(f”Created job: {retur

元記事を表示

paizaラーニング『フィボナッチ数』

https://paiza.jp/works/mondai/array_primer/array_primer__fibo

解らなかったです。。。

#### 解答例
“`Python3
N = int(input())

fibo = [0] * N
fibo[0] = 0
fibo[1] = 1

for i in range(2, N):
fibo[i] = fibo[i – 2] + fibo[i – 1]

for ele in fibo:
print(ele)
“`

元記事を表示

paizaラーニング「二点間の距離 2 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_distance_step2
#### 私の解答
“`Python3
N, A, B = map(int,input().split())

X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i] = int(values[0])
Y[i] = int(values[1])

print(abs(X[A-1] – X[B-1]) + abs(Y[A-1] – Y[B-1]))
“`
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
A = int(values[1])
B = int(values[2])

X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i]

元記事を表示

paizaラーニング「二点間の距離 1 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_distance_step1
#### 私の解答
“`Python3
n = int(input())
for i in range(n):
values = input().split()
ans = abs(int(values[0]) – 2) + abs(int(values[1]) – 3)
print(ans)
“`
#### 解答例
“`Python3
N = int(input())

X = [0] * N
Y = [0] * N
for i in range(N):
values = input().split()
X[i] = int(values[0])
Y[i] = int(values[1])

for i in range(N):
print(abs(X[i] – 2) + abs(Y[i] – 3))
“`

元記事を表示

PySimpleGUI で 整数リストを並び替えて出力するGUIアプリケーションを作ってみた

子供(小学2年生)の冬休みの宿題として
「__掛け算九九の各段について、ランダムに並び替えた数字の順で間違えないように暗唱する__」
というものがあり、その「ランダムな数字の順」を考えるのが面倒なので、Pythonにやらせてみようと思ったのが事の発端です。
(Qiita様と投稿者の皆々様のエントリには常日頃お世話になっており、何かひとつ投稿してみたいと考え、当エントリを作成しました)

# 1.整数リストをランダムに入れ替えるスクリプト
最初に作ったのは「1から9までのリスト」をランダムに並び替える関数でした。
作っているうちに欲が出て「リストを違うパターンで並び替えて出力する」仕様も追加しました。

“`RandomList.py
import sys
import random
import copy

def random_list(repeat=1, num=10):
# 1からnumまでのリスト
numbers = list(range(1,num))

# 繰り返し
numbers_list = []
i = 0
while

元記事を表示

paizaラーニング「ある数以上以下の要素の列挙 2 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step2
#### 私の解答
“`Python3
n, k = map(int,input().split())
a = list(map(int, input().split()))
for ele in a:
if ele >= k:
print(ele)
“`
#### 解答例
“`Python3
values = input().split()
N = int(values[0])
K = int(values[1])

A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])

for a in A:
if a >= K:
print(a)
“`

元記事を表示

paizaラーニング「ある数以上以下の要素の列挙 1 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_ave_step1
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
for ele in a:
if ele >= 5:
print(ele)
“`
#### 解答例
“`Python3
N = int(input())

A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])

for a in A:
if a >= 5:
print(a)
“`

元記事を表示

paizaラーニング「配列の最大最小 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__array_minmax
#### 私の解答
“`Python3
n = int(input())
a = list(map(int, input().split()))
print(max(a), min(a))
“`
#### 解答例1
“`Python3
N = int(input())

A = [0] * N
values = input().split()
for i in range(N):
A[i] = int(values[i])

sorted_A = sorted(A)
print(sorted_A[N – 1], sorted_A[0])

“`
#### 解答例2
“`Python3
N = int(input())
A = [int(x) for x in input().split()]

print(max(A), min(A))

“`

元記事を表示

Pythonを改めてちゃんと学ぶメモ #2

# はじめに

ここは、Pythonを改めて学んでいるメモを都度書き出していきます。
※ 筆者のバックグラウンドは#1をご覧ください。

https://qiita.com/hideh_hash_845/items/58241f0ce0283e457a87

# 文法の気づき2
## リスト
– indexは0オリジンで、マイナス指定も可(Perlと同じ)
– リストの長さは`len()`
– 末尾に追加する時は`append()`
– 要素削除時、index指定なら`del()`, 内容指定時は`remove()`
– スライスができるが、後のindexは「最後の要素」ではなく「最後の要素の一個前」
~~~
my_list=[“hoge”, “huga”, “moga”, “aaa”, “bbb”, “ccc”]
my_list[1:3]
# [“huga”, “moga”]
# “aaa”は含まれない!
~~~

## タプル
– タプル=イミュータブルなリスト
– 要素の変更(代入・追加・削除・並び替え)ができない
– 書き換えてほしくないデータを安全に扱うことができる
– スラ

元記事を表示

paizaラーニング「重複の削除 Python3編」

https://paiza.jp/works/mondai/array_primer/array_primer__deduplication
#### 私の解答
“`Python3
li = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]

new_li = []

for ele in li:
if ele not in new_li:
new_li.append(ele)

sorted_new_li = sorted(new_li)
for ele in sorted_new_li:
print(ele)
“`
#### 解答例
“`Python3
li = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]

li_set = set(li)
sorted_li_set = sorted(li_set)

for ele in sorted_li_set:
print(ele)
“`
set(li)で重複の削除を行うことを覚えました。

元記事を表示

OTHERカテゴリの最新記事