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

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

自分用メモ openpyxl基本

**book読み込み**
load_workbook(“名前”)
**保存**
save(“名前”)
**行・列追加**
insert_rows(行番号, 行数)
insert_cols(列番号, 列数)
**行・列削除**
delete_rows(行番号, 行数)
delete_cols(列番号, 列数)
**Excelからリストに**
1.空のリスト作成 list = []
2.for文で順番に行、列を追加 
for i in ws[“列or行”]
␣␣␣␣list.append(列, value)
**正規表現にマッチする文字列の削除**
re.sub(“正規表現”,”置換する文字”, 対象)
**リストをExcelに**
for i in range(len(list))
␣␣␣␣ws.cell(row=1, column=1).value=list[i]
※row,columnは用途に合わせてiを足す。
**シート作成**
wb.create_sheet(“シート名”)

元記事を表示

apache cgi-bin として pythonスクリプト を実行する(再掲)

(昔別アカウントで書いていた記事の移行です)

業務でpythonのcgiを使う機会があり、調べた結果を備忘録として。

# 環境
– CentOS7.4
– Apache2.4.6
– Python 2.7.5
– Python 3.6.5

# インストール方法
## mod_python
1.事前準備

“`sh
yum install httpd httpd-devel python-devel
yum groupinstall “Development Tools”
“`

2.ダウンロード

“`sh
wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz
“`

3.コンパイル

“`sh
tar zxfv mod_python-3.5.0.tg
cd mod_python-3.5.0
./configure -with-apxs=/usr/bin/apxs
“`

4.ファイル編集

“`sh
vi dist/version.sh
  ===================
   #!/bin/s

元記事を表示

VSCODEでPythonのインタープリター選択(解決?)

# 目次
1. 現状
1. エラー内容
1. 仮想環境を再作成してみる
1. settings.jsonの問題?

# 1. 現状
#### 開発環境
>OS : Windows10
Editor : Visual Studio Code
#### フォルダー構成
>D: (ドライブ)
 |–AppData
 |  |–python.exe (Python : 3.10.5)
 |  |–…
 |–MyApp
 |  |–.venv (仮想環境)
 |  |–.vscode
 |  |  |–settings.json
 |  |–flaskr (自作プログラム)
 |  |  |–…
#### ファイル内容
>“`json:settings.json
>{
> “python.defaultInterpreterPath”: “.venv\\Scripts\\python.exe”
>}
>“`
# 2. エラー内容
VSCODEでインタープリター選択>デフォルトを指定した際、以下の様なエラーとなる。
>無効なPythonインタープリター{0}が選

元記事を表示

【Python】娘(当時1歳半)との尊い会話シミュレーター

## 概要

娘(当時1歳半)との尊い会話のシミュレーターを、Pythonで再作成しました。

ExcelVBAバージョンはこちら。

https://qiita.com/AnPanda/items/da66bbf657e8712f1322

## コード

“`python
import random

words = [“ばなな”, “もも”, “すいか”, “りんご”, “ぱんだ”,
“いぬ”, “ねこ”, “たこ”, “いか”, “なっとう”]
n = random.randint(1,6) #1-6でランダム

for i in range(n): #質問を最大6回繰り返す
nani = input(“なーにーなーにー? >>”)

if nani == “”: #空白の場合、再度質問
continue
elif nani in words: #単語リストに存在する場合、応答
print(nani + “!”)
else: #単語リストに存在しない場合
yesno = input(“

元記事を表示

Pythonのクラスについての詳しいところをまとめとく(自分用)

以前Twitterでクラスのわからん点を書きなぐったは良いものの忘れるたびにTwitterを履歴を漁ってたがよくよく考えると面倒なのでここにまとめときます。

## クラスって何?
クラスとかインスタンス化とかをポケモンで例えてみると、
ポケモンでポッポっていますよね?あの最初の草むらでめっちゃ出てくる奴。あれを実際にプログラムするとして、出てくるポッポ全部別々で作ってたら、死にますよね?数量限定の手作りパンと違って草むらにいれば無限に出てくるので
なので、頭がいい人は気づいたわけです。先にポッポのある程度のデータを決めた「型」を創っちゃえと。これがクラスです。例えば種族値が
40 45 40 35 35 56 であるとか、見た目はどうとか。
プログラムでも複数回使うものに関しては先に型を創っちゃえって考えで生まれたのがこの「クラス」です
そしてインスタンスとはその型を用いて生まれてたポッポの事です。
ポッポの種族値や見た目は全て同じですが、例えば個体値はそれぞれ違いますよね?同じLv.20のポッポでも優劣はあるわけです。
そんな一体一体違うポッポそれぞれをインスタンス
と呼び、クラス

元記事を表示

AtCoder Beginner Contest 261 不参戦記

# AtCoder Beginner Contest 261 不参戦記

## [ABC261A – Intersection](https://atcoder.jp/contests/abc261/tasks/abc261_a)

WA2. 2つの線の位置関係とか考えるより素直に色塗りするべきだった.

“`python
L1, R1, L2, R2 = map(int, input().split())

a = [0] * 100
for x in range(L1, R1):
a[x] += 1
for x in range(L2, R2):
a[x] += 1
print(a.count(2))
“`

## [ABC261B – Counterclockwise Rotation](https://atcoder.jp/contests/abc261/tasks/abc261_b)

書くだけ.

“`python
N = int(input())
A = [input() for _ in range(N)]

for y in range(N):

元記事を表示

AtCoder Beginner Contest 260 不参戦記

# AtCoder Beginner Contest 260 不参戦記

## [ABC260A – A Unique Letter](https://atcoder.jp/contests/abc260/tasks/abc260_a)

書くだけ.

“`python
S = input()

d = {}
for c in S:
d.setdefault(c, 0)
d[c] += 1

for c in d:
if d[c] == 1:
print(c)
exit()
else:
print(-1)
“`

## [ABC260B – Better Students Are Needed!](https://atcoder.jp/contests/abc260/tasks/abc260_b)

ソートして言われた順に取るだけではあるけど、ソートの応用編を知らないと大変そうではある.

“`python
N, X, Y, Z = map(int, input().split())
A = list(map(int

元記事を表示

pip installしようとしたら”exit code1″、”Microsoft Visual C++ 14.0 is required”と表示された(Annoyの場合)

## はじめに
PythonのAnnoyというパッケージをインストールしようとした際に、以下の表示が出てインストールできなかったので対処した際のメモ。

– exit code 1
– error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio”

#### 実行環境
– Windows11(勝手にアップデートされてた。。)
– Python 3.9.7 (Anaconda使用)

## Annoyとは
Approximate Nearest Neighbors Oh Yeahの略。近傍探索に用いられるアルゴリズム。
Spotifyが作成、実装がしやすいので人気が出たらしい。
https://github.com/spotify/annoy

参考:
[近傍探索ライブラリ「Annoy」のコード詳解](https://techblog.zozo.com/entry/annoy-explanation)
[近似最近傍探索の最前線](https://speakerdeck

元記事を表示

[公開版]AtCoder Beginner Contest せっかくだから書いたコードを公開(随時更新)〜Python編〜

# 日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257)
https://atcoder.jp/contests/abc257/tasks/abc257_b
## C – Rotation
“`python
n,k,q = list(map(int,input().split()))
#コマが存在するマス目
a = list(map(int,input().split()))
#何番目のコマに対する処理か
l = list(map(int,input().split()))

“””必要な変数

・operate_piece

“””

“””必要な処理

1. 一番右にあるコマが一番右のマスない場合
2. 今操作しようとしようしているコマの右隣にコマがない場合

“””

for i in range(len(l)):
check=l[i]
operate_piece=a[check-1]
#一番右にあるコマが一番右のマスない場合
if operate_piece!=n:
#今操作しようとしようして

元記事を表示

AtCoder Problems | ABC261 A.Intersection

## ① 問題
[こちら](https://kenkoooo.com/atcoder/#/table/)でAtCoder上で出題されたコンテストの問題が集大成されています。
今回解いた問題は[こちら](https://atcoder.jp/contests/abc261/tasks/abc261_a)。

## ② 解答
“`python:261A.py
(L1,R1,L2,R2) = map(int,input().split())

if L2 <= L1: if R2 <= L1: print(0)

元記事を表示

pythonコマンドが効かない

さあこれからpythonの勉強していくぞ!って時にいきなり出鼻をくじかれたことのメモ

## 前提条件
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1446396/07c2cc73-2983-c112-50e9-a9b571219b3f.png)

## 発生した問題
まずpythonのバージョンを確認しようと思って
“`
python -V
“`
を実行するが
“`
zsh: command not found: python
“`
となる。え?タイプミスか?と思ったが絶対それはない。
pythonがインストールされてないんだぁと思ってインストールするが、それでも同じ結果。

少しぐぐった結果以下コマンドで確認すると…

“`
python3 -V
“`
“`
Python 3.9.13
“`
あーやっとバージョンが出た。

## 原因
どうやらM1 macのアップデートでpython2が削除されていたようでした。
それによってpythonコマンドが効かず、py

元記事を表示

めちゃくちゃかっこいいvolcano plotを作りたい!

# volcano plotとは
Volcano plotは、一般的にはx軸を発現比、y軸を統計的有意性とした散布図の一種で、主にRNA-seqやDNAマイクロアレイなどで得られた二群の遺伝子発現量を比較する際に用いられます。

数千、数万という遺伝子発現の変化を可視化することにより、重要な要素を特定する助けとなります。
例として、この図だと赤が統計的有意に発現量が増加した遺伝子で、青が統計的優位に発現量が減少した遺伝子を示しています。
![volcanoplot_example](https://camo.qiitausercontent.com/176ca187fe2e3d2b9a58891ff4891081f27ea7a6/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3437313633332f38306633363435342d356630612d643830362d353261372

元記事を表示

Pythonによるマルコフ連鎖モンテカルロ法(MCMC)

### ■初めに
こちらの記事ではマルコフ連鎖モンテカルロ法に関する解説をpythonのコード付きで行っております。
実装したものを用いたい場合にはnotebookを下記のGitHubレポジトリにアップしていますので、クローンを行って使用してください。
[https://github.com/YusukeOhnishi/BayesianStatistics](https://github.com/YusukeOhnishi/BayesianStatistics)

### ■モンテカルロ法
モンテカルロ法についてまずは見ていきます。これは乱数を用いた数値計算となっています。例えば、円の面積を求めるといったものが代表的な例です。また、モンテカルロ法では一般的に、ランダムに打つ点の個数を多くするほど精度が良くなっていくことが知られています。

下記の実装では円の面積を求める計算をモンテカルロ法を用いて行っています。この結果を見ると今回の場合の正解値(0.7854)に収束してい様子がわかります。
“`python
N_monte_list=np.arange(1000,500000+1,1

元記事を表示

JSONデータチェック及び保存処理統合版(Python)

# 概要
今日は前回の3つの記事で作成したPythonコードを1つにマージします。

# 前回の記事は下記のリンクを参照
①JSON形式を判定するツール(Python)
https://qiita.com/neomi/items/f0bfbaabc7598febba2f

②JSONデータを日付毎に保存(Python)
https://qiita.com/neomi/items/4badcd514d86721e1e7d

③JSONデータを日付フォルダ毎に保存(Python)
https://qiita.com/neomi/items/4c32db545c41652e360b

# 事前JSONデータファイル
次の内容通りにJSONファイルを保存してください。

~~~
pi@raspberrypi:~/work $ cat cur20200101.json
{“name”:”田中”,”age”:”46″,”gender”:”1″,”reg_date”:”2020/01/01 15:33:25″}aa
{“name”:”鈴木”,”age”:”32″,”gender”:”1″,”reg_

元記事を表示

動画の再生位置をランダムに変更しながら再生していくPGM

動画の再生位置をランダムに変更しながら再生していくPGM

動画の再生位置をランダムに変更しながら再生していくPGMをPythonで作成しました。


githubURL: https://github.com/NanjoMiyako/RandomContentPlay


スクリーンショット
https://github.com/NanjoMiyako/RandomContentPlay/blob/main/screenshot/screenshot2.png


参考にしたサイト

【Python】timeで経過時間を測定する(perf_counter) | 鎖プログラム

Python 3 + OpenCV を用いて動画の長さを取得

元記事を表示

SIGNATEの「スパムメール分類」問題にチャレンジしてみた

# 0. 概要
SIGNATE(日本の機械学習コンペサイト)の練習問題である「スパムメール分類」にチャレンジしてみました。
– BoWを作成してナイーブベイズによって予測したら高い精度が出ました。

# 1. 手順
自然言語処理は機械学習の中でも発展が著しい分野ですが、まずは基本となる知識を習得するのが必要だと考えました。
そんなわけで、基本と思われる「BoW(Bag of Words)」の作成を行い、その結果からスパムメールを分類するということをやってみました。

– 環境:Jupyter Notebook
– notebook同階層に「data」フォルダが存在し、その中にSIGNATEからダウンロードしたファイルを保存
## 1.1. データの取り込み
テキストファイルを読み込んで、pandasのDataFrame形式にしていきます。
“`python
# ライブラリのインポート
import pandas a

元記事を表示

[Python3] 2重loopをitertools.productで置き換えて、速度が遅くならないか確かめた

# 経緯

1. 2重ループを廃止して可読性を上げたい
※ループがネストしていると単体テストを書きにくい、という問題もある
2. しかし、`itertools.product()`は遅いという情報を入手した

「2.」の情報元は以下の記事

https://stackoverflow.com/questions/24555457/itertools-product-slower-than-nested-for-loops

リファクタリングしたせいで処理が遅くなったら困るので、どのくらい遅くなるのか、自分で確かめることにした。

# 環境

測定は、お手軽に試せる Google Colaboratory 上で行いました。

“`python:colaboratory
!python –version
Python 3.7.13
“`

# 調査 part.1 (2重ループ)

## 比較対象

1. 2重forループ
2. `itertools.product`に対するループ

## ソースコード

### 1. ループ対象

まず、ループ対象になる配列を生成しておく。
これ

元記事を表示

google-images-download使い方メモ

# 準備
## google-images-downloadをインストール
この時`pip`でやらずに公開されているGithubから`clone`します。

“`:コマンドプロンプト
git clone https://github.com/Joeclinton1/google-images-download.git gid-joeclinton

“`
この時最新版の`selenium`がダウンロードされるが、`find_element_by`から始まるメソッドが使えなくなっているので、バージョンを落とす必要があるため一度`selenium`を削除して、古いバージョンを入れる。

“`:コマンドプロンプト
pip uninstall selenium
“`

“`:コマンドプロンプト
pip install selenium==4.0.0
“`

`selenium`のバージョンが`4.3.0`より古ければ大丈夫だと思う。

## Chrome Driverのインストール
[Downloads – ChromeDriver](https://chromedriver.ch

元記事を表示

PythonでOpenCVを使った色空間の変換

PythonでOpenCVを使った色空間の変換

今回は「PythonでOpenCVを使った色空間の変換」を学んでいきます。
それぞれのバージョンはPython 3.10.4、OpenCV 4.5.5になります。また、今回の記事の内容はOpenCVの[公式ドキュメント](https://docs.opencv.org/4.5.5/d8/d01/group__imgproc__color__conversions.html#ga397ae87e1288a81d2363b61574eb8cab)を参考にしています。

# OpenCVで色空間の変換処理
OpenCVではcvtColorという色空間の変換処理を行う関数が実装されています。引数に変換前後の色空間を指定することで、様々な色空間への変換を行うことができます。

“`python:cvtColor
cv.cvtColor(src, code[, dst[, dstCn]])
“`
|Parameters|説明|
|:–:|:–:|
|src|符号なしの8ビット or 16ビットまたは32ビット浮動小数点数(CV_32F)の画

元記事を表示

pythonのChromeDriverManager記述について

“`
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
#最初からheadlessでは書かないので、コメントアウト
#options.add_argument(‘–headless’)

#好きなフォルダーを記載
driverfolder = r”C:\python\drivers”
driverpath = ChromeDriverManager(path=driverfolder).install()
driver = webdriver.Chrome(service=Service(driverpath),options=options)

driver.get(‘https://www.google.com/’)

#以下必要な処理を記載
“`
話はそれる

元記事を表示

OTHERカテゴリの最新記事