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

Python関連のことを調べてみた2022年02月20日
目次

1.2. csv形式で出力する

#トピック

DataFrameをcsv形式で出力(エクスポート)する方法を説明します。

– **DataFrameをcsv形式で出力する方法(エクスポートの方法)**
pandasでcsv形式で出力する

– **日本語を含む場合のオプション** `encoding=’shift_jis’`

– **参考ページ**
[https://note.nkmk.me/python-pandas-to-csv/](https://note.nkmk.me/python-pandas-to-csv/)
[https://shilabo.com/python/web_self/a001_000/a001_002/](https://shilabo.com/python/web_self/a001_000/a001_002/)

DataFrameを操作し、意図通りにできたか確認する為、csvで出力して確認することが非常に多いです。
なので、Pythonの学習を進める際に、先に出力の方法を知っておくと効率的です。

尚、**numpy の ndarray は、この方法では出力できません。**

元記事を表示

ABC207 D Congruence PointsをPythonと複素数で解く

## 問題
https://atcoder.jp/contests/abc207/tasks/abc207_d

## 方針
:::note info
入力例1の場合の図を示します。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590045/1d9695c0-a8aa-0a69-8ad0-a86c6405286a.png)

– $S$に含まれる全ての点(図の赤の点)の重心を求める。
– $T$に含まれる全ての点(図の緑の点)の重心を求める。
– $S$の重心から$T$の重心へ向かうベクトル$\overrightarrow{v_{ST}}$を考え、$S$に含まれる全ての点にこのベクトル$\overrightarrow{v_{ST}}$を足して$S$を移動させる。
– 移動後の$S$と$T$の重心は一致し、以降これを$G$とする。

![image.png](http

元記事を表示

mayaの環境を構築していく 5日目

一番面倒なsetJointOrientの部分が出来たので、UI作りつつ他の機能もさっさか作っていきます。

– createNode
エッジループの中心や特定のvtx位置などにjointを作成したい

– mirrorJoints
maya標準のmirrorJointだと、1個ずつしかできないので面倒。
複数に対応させたい

– mirrorOrients
左右jointがそろっている状態で、jointOrientを左右揃えたい。

– mirrorPositions
左右jointがそろっている状態で、joint位置を揃えたい

といった内容のツールを作成したい

mirrorOrients/mirrorPositions

骨半分いじった後に毎回 削除して mirrorJointsは面倒なので。
特定の点を支点として、特定の軸方向に反転させる処理をmatrixでやってみる。

位置に関しては、支点の位置と軸に対して -1 スケールすれば良いんじゃないかしら。

ひとまず 支点 = 原点という想定でやってみる

“`
def mirrorMatrix(source,mirror

元記事を表示

CloudFunctions×CloudSchedulerでPython/Seleniumスクレイピング&メール通知を定期実行

## 何をどうしたいのか

今回クラウド環境にデプロイしたいものに関して、必要であれば詳しく書いてある下の記事を見て欲しい。

https://qiita.com/ugkajiwara/items/5681c00bbf7f1f9f16b2

簡単にいうと、selemiumを用いて打刻を管理しているサイトAから必要なデータを抽出し、給与計算等に使っているサイトBに、必要な処理を施したデータを保存するコードを書いたのだが、、、
ターミナルでコマンドを打ってローカル環境で実行していたものをクラウドに移すことで、毎日決まった時間に前日分の処理を自動でやってくれないかなということです。

CloudFunctions + CloudSchedulerで作成。下の図を見ると仕組みはだいたいわかると思う。
![スクリーンショット 2022-02-19 23.57.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2292175/45aa1c4d-36d8-4315-b584-38b236380b1d.png)

#

元記事を表示

pythonでフロア関数を利用する場合は`//`演算子を使った方が良さそうであるという話

pythonでフロア関数を利用する場合は`math.floor`もしくは`//`演算子を使う方法がある

使ってみた

“`python:test.py
import math
x = 12345

print(“—“)
print(x)
print(“—“)
print(math.floor(x/10))
print(x//10)

y = 2**56

print(“—“)
print(y)
print(“—“)
print(math.floor(y/10))
print(y//10)
“`

小さな数値の場合は結果が一致するが、大きな数値の場合は実行すると微妙に結果が違う

“`
$ python test.py

12345

1234
1234

72057594037927936

7205759403792794
7205759403792793
“`

`math.floor`の仕様をみると`Python の浮動小数点型は 53 ビット以上の精度をもたない`という事で、16桁を超えるような数値を扱う場合は誤差が出ると思われ

元記事を表示

pythonで素数判定のためにエラトステネスの篩でテーブルを作る

以下を参考にさせて頂いています。

> [エラトステネスの篩](https://python.ms/eratosthenes)
> 1. 簡単なもの
>
“`python
def primes(n):
is_prime = [True] * (n + 1)
is_prime[0] = False
is_prime[1] = False
for i in range(2, n + 1):
for j in range(i * 2, n + 1, i):
is_prime[j] = False
return [i for i in range(n + 1) if is_prime[i]]
“`

以下のような、 n までの素数テーブルを用意するclass(素数であればTrue)を作成した

“`python
import math

# n までの素数テーブルを用意するclass(素数であればTrue)

元記事を表示

pythonで整数値の桁数を求める

pythonで整数値の桁数を求める

log10を使うだけ

“`python
import math

num = 2**53
digits = int(math.log10(num))+1
print(digits) #16
“`

## 追記

以下の方がはるかに楽であった。。

> [Pythonで数字の桁数を取得する方法](https://qiita.com/RShirakawa/items/23f8f1d907dc40ebbdd2)
> 数字を文字列に変換して、長さを取得する。
> 負の数の場合、マイナス符号が桁数に入ってしまうので絶対値に変換しておく。
>
> “`
num = -12345
num_digits = len(str(abs(num))) # 一括変換
print(num_digits) # 実行結果 5
“`

# 参考

https://qiita.com/RShirakawa/items/23f8f1d907dc40ebbdd2

https://www.delftstack.com/ja/how

元記事を表示

デンソークリエイトプログラミングコンテスト2022(AtCoder Beginner Contest 239) 参戦記

# デンソークリエイトプログラミングコンテスト2022(AtCoder Beginner Contest 239) 参戦記

## [ABC239A – Horizon](https://atcoder.jp/contests/abc239/tasks/abc239_a)

2分で突破. 書くだけ.

“`python
from math import sqrt

H = int(input())

print(sqrt(H * (12800000 + H)))
“`

## [ABC239B – Integer Division](https://atcoder.jp/contests/abc239/tasks/abc239_b)

4分半で突破. 試したら Python の除算そのままであれってなった.

“`python
X = int(input())

print(X // 10)
“`

## [ABC239C – Knight Fork](https://atcoder.jp/contests/abc239/tasks/abc239_c)

9分で突破. 2点の周

元記事を表示

pythonで2つの画像を比較してその類似度を算出するプログラムを作ってみた

pythonで2つの画像を比較してその類似度を算出するプログラムを作ってみました。
ちなみに、ディレクトリ名を日本語にしたかったので、日本語のパスにも対応するように作ってます。

ソースコードはこちら↓ の「1_類似度の算出」のプログラムです。

https://github.com/jun-higuche/python-ImageCompare

## 背景
これを作った背景ですが、現在、私が、スマフォアプリの提供APIを変更するというエンハンスプロジェクトを担当しておりまして、その新アプリでは、新しいAPIを使った場合と現在のAPIを使った場合とで、全く同じ動作をさせなければなりません。
その比較のために、[以前、作成したAppium+Pythonで作った自動テストツール](https://qiita.com/jun_higuche/items/7c6a23ed4f9cda53b8a0)を新アプリと現在のアプリで同じアカウントで動作させて、そのアプリのキャプチャ画像を撮っていき、新と旧で比較するっという事をしようとしてました。
その画像比較では、時計などその時々に変わってしまう値

元記事を表示

SAML RequestのデコーダをPythonでサクッと書く

## 概要

SSO (Single Sign-On)を実現するための仕組みの1つであるSAMLでは、SP (Service Provider)を起点とする (SP-initiated)場合、SPからIdP (Identity Provider) にSAML Requestを送る必要があります。

この際、SAML RequestはXMLで記述されますが、SPからIdPに渡される際は(特に`GET`のパラメータとして渡される場合)通常はDeflateで圧縮+Base64エンコードされ、人間の目では解読できなくなってしまいます。

先日、急いで自前のデコーダを用意する必要があり、Pythonで書いたところサクッと書けて便利だったので、小ネタとして投稿します。

## 背景

障害対応の一環で、SPがIdPに渡しているSAML Requestが正常に生成されているかや、中のデータは正しく設定されているか、などを調査する必要が生じました。
しかしこのSAML Request はDeflateで圧縮され、Base64でエンコードされていたため、そのままでは読むことができず、デコーダを用意する必

元記事を表示

memo

import subprocess
subprocess.Popen([r’C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE’, r’C:\Users\ntaka\Dropbox\desktop\Book1.xlsm’])

元記事を表示

MMSegmentationによる多数クラス画像(Multi Class)のセマンティックセグメンテーション(Semantic Segmentation).

#1. 概要
これまで、Semantic Segmentation modelsを用いて、航空機や衛星画像の建物のセグメンテーションや、車載画像を例に多数クラスのセマンティックセグメンテーションを紹介しました.

[衛星画像のSegmentation(セグメンテーション)により建物地図を作成する.](https://qiita.com/nigo1973/items/1d7495a963c23c97189c)

[PyTorchによるMulticlass Segmentation – 車載カメラ画像のマルチクラスセグメンテーションについて.](https://qiita.com/nigo1973/items/c62578fccc7230ba48f8)

 本記事では、Deep Learningの最新技術を用いた物体検知やセマンティックセグメーテーションを比較的簡単に実行・実装できる、OpenMMLabの[MMSegmentation](https://github.com/open-mmlab/mmsegmentation)の使い方について紹介します。例えば、多数クラスの車載画像によ

元記事を表示

PySimpleGUIでスケジュール管理プログラムの作成 その2

## はじめに

PySimpleGUIの勉強を兼ねて、スケジュール管理プログラムを作成しました。
作成にあたり、多くの方の記事を読んで勉強させて頂きました。
同じような機能をもったGUIを作成したい方の参考になるかもしれないと思い、解説記事を作成しました。
間違いやもっと良い書き方などあれば、ご指摘頂けますと幸いです。

作成したプログラムの機能はこちらで説明しております。

https://qiita.com/CabbageRoll/items/f71b33e3e1b0596213ac

## PySimpleGUIの基本的な使い方

PySimpleGUIでGUIを作成するプログラムは、次の順で作成していきます。

1) Layoutの作成
インプット欄やボタンなどの要素をsg.Input(~), sg.Button(~)という形式で作成します。それらの要素を2次元配列のような形でリストに格納してLayoutを作成します。リストは以下のように、1行目に表示する要素を最初のリストに、2行目に表示する要素と2つ目のリストに入れて作成します。

“`python
lay

元記事を表示

jupyterlabの設定

Windows10でjupyterlab環境を構築した際の設定についての備忘

#起動時のデフォルトディレクトリ変更
configファイル生成のため、コマンドプロンプトを起動して下記を実行する。

“`
jupyter lab -–generate-config
“`
すると、`C:\Users\USERNAME\.jupyter`に`jupyter_lab_config.py`が作成される。
生成されたファイルの900行手前付近の、下記のパラメータを編集すればよい。
文字列の先頭の`r`はraw文字列の利用を宣言するものである。Windowsパス特有の円マークを、エスケープ文字でなく単なる文字として扱うために必要となる。

“`config:jupyter_lab_config.py
c.ServerApp.root_dir = r’C:\Users\YOUR\DEVELOP\FOLDER\PATH’
“`

#jupyterlab起動ショートカットアイコンの作成
###やりたいこと
これまではjupyterlabを起動するために、毎回コマンドプロンプトを起動して`jupyt

元記事を表示

Django ランダムかつ有効期限のあるURLを生成し、上位者に承認してもらうための機能(1次承認)

## 環境
Windows 11 Home
Python 3.10.2
Django 4.0.2
venv利用あり
(PyPI)
APScheduler==3.8.1 (第2回、第3回で使用。今回は使用しない)

## 関連記事
Django 第1回:[Django Custom User Model の作成](https://qiita.com/startours777/items/706d38e712b0c737a16a)
Django 第2回:[Django 初回ログイン時にパスワード変更を強制する](https://qiita.com/startours777/items/28db625a9bb81a36d4ad)
Django 第3回:[Django 一定期間パスワードを変更していないユーザにパスワード変更を強制する](https://qiita.com/startours777/items/d550ca9b67cea4408a44)
Django 第4回:[Django ランダムかつ有効期間ありのURLを生成し、上位者に承認してもらうための機能(アカウント作成1次承認)](

元記事を表示

google colabでngrokを使ってAPI化したときにWelcome to ngrok!とか出るときの対処法

google colabでngrokを使ってAPI化したときにWelcome to ngrok!とか出たとき解決した方法を書いときます。
google colabでngrokを使ってAPI化することについて、詳しくは下の記事を読んでください
https://qiita.com/k_0214/items/dcf14c74779eb9839577

![スクリーンショット 2022-02-19 19.50.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/795753/16649b43-4db3-1a42-7ba7-774ae93dfc98.png)

urlにアクセスした時にこんな感じの画面が出たときです。

#解決した方法

1:Sign up for an ngrok accountとか書かれてるとこをクリックします。

2:サインアップしてから、Your Authtokenとか書いてあるところに行ってCommand Lineとか書かれてるとこのコードをgoogle colaboratory

元記事を表示

20220219memo_python

“`python
import pandas as pd
“`

“`python
# エクセルファイルから日本語と英語の対応関係を取得
sheet_dict = pd.read_excel(‘./data/20220219_monthly.xlsx’,sheet_name=None)

jp_en = sheet_dict[‘シートいち’]
jp_en.columns = [[‘国・地域’,’Country/Area’]]

old = jp_en[‘国・地域’]
new = jp_en[‘Country/Area’]

old = set((old .values).flatten())
new = set((new.values).flatten())
“`

“`python
”’
両方の集合に共通する要素を除去する
イテレータを生成するオブジェクトが変更されないようにディープコピーを使用している。
”’

import copy
deep_old = copy.deepcopy(old)
deep_new = copy.deepcopy(new)

fo

元記事を表示

【超初心者向け】一行一行解説する画像分類CNNチュートリアル(演習Notebook付き)

# Welcome to 画像分類AI tutorial!
ここでは画像を分類するAIを作ります。コードを一つ一つ実行していくとなんと画像を勝手に分類してくれるAIができます。
Google Colab上で動く演習Notebookは[こちら](https://colab.research.google.com/github/Geson-anko/AI_Tutorials/blob/master/ImageClassification/tutorial.ipynb)から
### 対象者
– とにかくAIを触って動かしてみたい という方
– なにやってるかわからないから一行ずつ解説してほしい という方
– 画像分類ってどうするの? という方

それでは始めていきましょう!

### 目次
1. ライブラリ
2. データ処理について
3. AIモデルの定義
4. 学習スクリプト
5. 評価スクリプト
6. 実行してみる
7. 結果をみてみる
8. 自分の画像を判別させてみよう

※今回は演算デバイスとしてCPUを使用しています。

“`python
# 演算デバイスの指定。cpuのほ

元記事を表示

QISkit 4ビットグローバアルゴリズム

1. はじめに
参考文献2)では,2ビット,3ビットのグローバのアルゴリズムが紹介されている.本報告では,アルゴリズムの中核となる拡散変換について説明するとともに,4ビットの場合(拡張は可能)についてプログラムを作成したので報告する.

2.問題設定
1)4ビットのグローバアルゴリズムプログラムの作成
・拡散変換の明確化
2)解析システム
  RaspberryPi4+Python+QISkit
3. 拡散変換
参考文献1),3)他を参考にして纏めておく.
1)目的
 図1に拡散変換の動作を参考文献1)より引用して示す.目的は,入力データを平均値を中心に反転させるものである.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2010670/59308344-45be-8a80-f66d-56a010e099dc.png)
        図1 拡散変換の動作
2)定義
 下式により定義されている.
  ![image.png](https://qiita-image-store.s3.a

元記事を表示

「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#13

【出典】[「新・明解Pythonで学ぶアルゴリズムとデータ構造」](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4815603197/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1BG3JS7CKMZA0&keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%

元記事を表示

OTHERカテゴリの最新記事