- 1. 自分用メモ openpyxl基本
- 2. apache cgi-bin として pythonスクリプト を実行する(再掲)
- 3. VSCODEでPythonのインタープリター選択(解決?)
- 4. 【Python】娘(当時1歳半)との尊い会話シミュレーター
- 5. Pythonのクラスについての詳しいところをまとめとく(自分用)
- 6. AtCoder Beginner Contest 261 不参戦記
- 7. AtCoder Beginner Contest 260 不参戦記
- 8. pip installしようとしたら”exit code1″、”Microsoft Visual C++ 14.0 is required”と表示された(Annoyの場合)
- 9. [公開版]AtCoder Beginner Contest せっかくだから書いたコードを公開(随時更新)〜Python編〜
- 10. AtCoder Problems | ABC261 A.Intersection
- 11. pythonコマンドが効かない
- 12. めちゃくちゃかっこいいvolcano plotを作りたい!
- 13. Pythonによるマルコフ連鎖モンテカルロ法(MCMC)
- 14. JSONデータチェック及び保存処理統合版(Python)
- 15. 動画の再生位置をランダムに変更しながら再生していくPGM
- 16. 動画の再生位置をランダムに変更しながら再生していくPGM
- 17. SIGNATEの「スパムメール分類」問題にチャレンジしてみた
- 18. [Python3] 2重loopをitertools.productで置き換えて、速度が遅くならないか確かめた
- 19. google-images-download使い方メモ
- 20. PythonでOpenCVを使った色空間の変換
- 21. pythonのChromeDriverManager記述について
自分用メモ 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 randomwords = [“ばなな”, “もも”, “すいか”, “りんご”, “ぱんだ”,
“いぬ”, “ねこ”, “たこ”, “いか”, “なっとう”]
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] += 1for 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 ChromeDriverManageroptions = 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/’)
#以下必要な処理を記載
“`
話はそれる