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

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

ABC277回答メモ

0.はじめに
 ビギナーとは・・・。。
 と、なるくらいC以降の難易度が高く感じました。
 まぁ私のレベルが低いのかもですが。

1.A – ^{-1}
 リストを配列に入れて、頭からチェックでAC頂けました。

 https://atcoder.jp/contests/abc277/submissions/36409527

2.B – Playing Cards Validation
 【考え方】
  (1)1文字目OK文字の辞書dict1を用意
  (2)2文字目OK文字の辞書dict2を用意
  (3)重複がないかをチェックする辞書dictinを用意
  (4)SiをN回読み込んでいく
   (4-1)Siの一文字目がdict1にあるかチェック
      →なかったら”No”を出力しプログラム終了
   (4-2)Siの2文字目がdict1にあるかチェック
      →なかったら”No”を出力しプログラム終了
   (4-3)Siがdictinにあるかチェック
      →あったら”No”を出力しプログラム終了
      →なかったらdictinにSiを登録
  (5)

元記事を表示

1-1 SSHの手続きと、レポジトリの作製 (スナガクのポートフォリオ作成日記)

こんにちは!
記事をご覧いただきありがとうございます。
スナガクと申します。

転職などのためにポートフォリオを制作させて頂いてます。
言語はPythonで、基本的な文法は、スクールや本で学習した者です。
分からないことだらけで、悪戦苦闘中ですが、頑張ります!
同じ初心者の方の助けになれば、幸いです!

今日は、GitにおけるSSHの設定と、リポジトリの作製を行いました。

具体的な手順は下記の通りです!
Bash上で、SSH Keyを作製
→GitHubに登録して、暗号化通信できるように。
→GitHub上で、新しいレポジトリ作成
*詳細な手順は、省かせて頂きます。

SSH Keyを作成までは上手くいきました。
そして、これをコピーするために、clipコマンドを実行した所、

![とりあえずsudoで.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2963171/5d9d25b7-229f-e3cc-0543-3d24fe6becb2.jpeg)

このように、clipが使えない…と
そこで、アドバ

元記事を表示

DigitalMicrographでPythonを使う

DigitalMicrograph(以下DM)は、Version3.4.xからPythonが使えるようになった。
PythonやAnacondaに詳しい方は別に悩んだりしないのかもしれないが、私は自分の使用しているAnacondaの環境と干渉するのではないかと少々悩んだが、そんな心配は要らない。
DMでは、Pythonを**C:\ProgramData\Miniconda3**にインストールしてくれる。
Miniconda使いの人には当たり前かもしれないが、いろいろなライブラリをインストールして作るあげたご自分の環境は**C:\ProgramData\Miniconda3\envs\GMS_VENV_PYTHON**以下にあるので、ほかのPCでもこれをコピーしてあげれば改めてインストールなどしなくて同じ環境を使うことができる。

## Pythonのインストールと環境整備
– インストール時に以下のようなDialogが表示されるので、Yes…の方にチェックを入れておけばいい。
![Python_install.png](https://qiita-image-store.s3.a

元記事を表示

discord.pyでログオフ機能を実装する(追加でシステム自体も落とす)

# 0.この記事で解説すること
* discord.pyのAPIリファレンスの読み方が分かる
* いきなりrun(token)が動かなくなった時の対応方法
* Botのログオフ機能を実装する

# 1.今回、解説に至った経緯
1. デバッグしたいのでbotをログオフさせたい
1. 解説記事を色々と見たが実装してる方がいなかった
1. システムの強制終了を頻繁にしているとrun(token)で動かなくなった
1. 対策ができたので記事を書くことに

3.についてですが、Replitで動かしてると発生するようです(他環境でも起きるかも?)
内容としては以下のエラーログが出ます(一部抜粋)
“`
discord.errors.HTTPException: 429 Too Many Requests (error code: 0):
“`

# 2.ログオフ機能を実装する

## 2.1 開発環境
* 統合開発環境: [Replit](https://replit.com/)
* discord.py: 2.0.1
* 言語: python3.8

## 2.2 処理の詳細内容
1. Di

元記事を表示

[python] Qiita、インスタに自動ログインさせる

# はじめに
最近はブラウザーの機能としてアカウントのIDとパスワードを自動入力させることができるが、昔は毎回手動で入力する必要があった。今の世代はそれがわかるだろうか。。
今回は自動化の機能として自動ログインをまとめておく

# 環境
python 3.7.8
Window 10
Chrome 107.0.5304.107

“`
pip install selenium==3.141.0
“`
## Chorme WebDriver ダウンロード
以下のリンクファイルをダウンロード

https://chromedriver.chromium.org/downloads

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821152/3fdf0b99-3eb4-f74a-2493-e8f60276df26.png)

`chrome://version`からバージョンを確認して、なるべく自分のChromeのバージョンと近いファイルをダウンロードする。

# Code
## Q

元記事を表示

たった4行で画像の中の人を数える方法

# どうも
face_recognitionについて調べてて意外と簡単だったので紹介します。

## 用意する物

+ face_recognition ←こいつが無いとお話にならない
+ 顔の入った写真 ←顔が隠れてないやつ

### 用意した画像
最近寒くなってきたのでこの画像にしました。
![3061076_s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2915539/14237492-c38f-6cb3-4167-19390d3fbf4a.jpeg)

画像は[ここからダウンロードできます](https://www.photo-ac.com/main/detail/3061076)

:::note warn
注意
face_recognitionの学習モデルの関係で赤ちゃんの顔を認識できません。
:::
注意事項の[詳しい説明はこちら](https://github.com/ageitgey/face_recognition/blob/master/README_Japanese.md#%

元記事を表示

等々力陸上競技場利用予定表のPDFをCSV変換

# インストール
“`
pip install pdfplumber
pip install japanera
pip install requests
pip install BeautifulSoup4
“`
# スクレイピング
“`python
import requests
from bs4 import BeautifulSoup

from urllib.parse import urljoin

def fetch_soup(url, parser=”html.parser”):

r = requests.get(url, headers=headers)
r.raise_for_status()

soup = BeautifulSoup(r.content, parser)

return soup

headers = {
“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko”
}

url = “htt

元記事を表示

Pythonにおける備忘録

## 概要
pythonにおける小技を自分用にまとめておく

## 目次
– np.whereを用いた条件を満たす行列要素の抽出
– リストの中から重み(確率)付けしてランダムに抽出

## np.whereを用いた条件を満たす行列要素の抽出

“`
a = np.random.randint(10, size = (3,4,5))
b = np.where(a==5)
print(a)
print(b)

>>> [[[9 5 1 4 6]
[1 9 1 3 3]
[0 7 4 9 4]
[1 8 5 0 8]]

[[2 3 8 3 5]
[8 9 4 0 4]
[4 1 2 9 3]
[8 9 7 6 3]]

[[0 1 7 8 0]
[3 8 2 8 8]
[4 1 7 7 5]
[6 5 7 7 5]]]
(array([0, 0, 1, 2, 2, 2]), array([0, 3, 0, 2, 3, 3]), array([1, 2

元記事を表示

Python BeautifulSoup find()を呼び出すつもりが、find_all()を呼び出してしまったのでしょうか?

# 目的

Pythonでスクレイピングをするときに何回もやらかしたので、今後も無駄な時間を使わないためにも備忘録として投稿します。

## 流れ

– コードの内容、実際のコード
– エラー文
– 解決策

# コードの内容

関東圏にあるAppleStoreの店舗名と営業時間を取得し`print()`で記述するプログラムを書きたかった。

“`Python:エラー吐きます
import requests
from bs4 import BeautifulSoup
from pprint import pprint
from time import sleep

def getStoreInformation():
urlLists = [“https://www.apple.com/jp/retail/marunouchi/”,
“https://www.apple.com/jp/retail/ginza/”,
“https://www.apple.com/jp/retail/shinjuku/”,

元記事を表示

【耳タコ】変数と関数の命名について上司に指摘された2つのポイント

初めまして。
今年度新卒でSier企業に入社したhirotoです。

今回は全てのエンジニアの耳にタコができるほど取り上げられている、変数や関数の命名についてです。
入社して半年ほど経ち、上司にレビューをしていただく中でご指摘された2つのポイントを備忘録としてまとめたいと思います。

1. 抽象的な単語を使うべからず

これは当たり前すぎることかもしれませんが、関数の命名に抽象的な単語を使ってしまっていました。

抽象的な単語の例としては、「check」や「validation」や「calc」などが代表的かと思います。

コードを書いているときの私は、可読性などお構いなしでノリノリになってしまう傾向がありました。
私がレビュー以前に書いていたコードには、上記のすべての単語を使ってしまっており、
「コードを見ても何の処理を行っているのかが分からない」と言われてしまいました。

これらの抽象的な単語を使わない代わりに、「isEmpty」や「extractTitle」などの具体的な命名をする

元記事を表示

WSL2 + Dockerに入門してJupterLabの開発環境を作る

# 誰向けの記事?
– WSL2 + DockerをでJupterLabを用いたPythonの開発環境を作りたい。
– WSL2って何?Dockerって何?状態なのでそこら辺の入門をしたい。
– WSL2 + DockerからGPUを使った開発環境(PyTorch)を作りたい。

筆者自身が全てに当てはまっていたので、やったことのメモ的な側面もあります。

# WSL2 + Dockerの環境を作る

## `INTEL VIRTUALIZATION TECHNOLOGY`を有効化する
BIOSを立ち上げて、`INTEL VIRTULIZATION TECHNOLOGY`を有効化します。\
これをサボったことにより後でエラーが出て調べる羽目になりました。必ず確認しておくと良いでしょう!

## WSL2インストール
### 1. インストール
 PowerShellで以下のコマンドを打つだけ。簡単。
“`sh:PowerShell
wsl –install
“`

「**Windowsの機能の有効化または無効化**」の設定が必要。自動で設定されるらしいという情報もあった

元記事を表示

【Python】妻に真夜中のダンスレッスン予約を強要されたので、Webスクレイピングで回避を試みようとしている話 (11.seleniumでカレンダーの日付選択など)

前回は、「10.seleniumでログイン」について投稿しました。今回はその続きで、予約画面に遷移して表示されたカレンダーの予約日をクリックする部分についてコーディングしたいと思います。

——————————————————————————————-
# ログイン後の画面遷移
ログインに成功すると、レッスン予約画面に遷移します。そこで予約ボタンをクリックします。
![名称未設定-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2915699/79e510c1-6f5a-8b3a-bf6d-66bc93085fd8.jpeg)

左にカレンダー、右側に該当日のレッスン一覧が確認できるレッスン一覧画面が表示されます。
デフォルトでは当日のレッスン一覧が

元記事を表示

複数のconda仮想環境に異なるバージョンのTensorFlowをインストールする

Tensorflowをインストールする系の記事は大量にあるので現状の個人的ベストプラクティスのメモ
結論だけ見たい人は下の[まとめ](#まとめ)まで飛んでください。
以下の思想を持つ人には役立つと思います。

## こんな人向け

### GPU対応したTensorflowを動かしたい

TendorFlowでGPUを使うにはNvidia Driverの他に対応したバージョンのCUDAとCuDNNも入れないといけない。
一つ一つインストール方法を確認するのが面倒な人。パスを通したりして環境をごちゃごちゃさせたくない人。

### 複数のバージョンのTensorflowを使いたい

CUDAとCuDNNをインストールする際、OSに直インストールしたり環境変数を設定してしまうと異なるバージョンのTensorflowへの切り替えが面倒なので、CUDAとCuDNN自体を仮想環境毎にインストールしたいという人。
開発は最新バージョンで行うが、他の人が昔書いたレガシーコードの動作確認も行うような人。

### Windowsにインストールしたい

Tensorflowは公式のDockerコンテナが

元記事を表示

ポートフォリオを今日から制作するのですが、温かく見守って頂けると嬉しいです!よろしくお願いいたします。

こんにちは!
記事をご覧いただきありがとうございます。

スナガクと申します!

今日から、転職などのためにポートフォリオを制作させて頂きます!
言語はPythonで、基本的な文法は、スクールや本で学習しました!

制作するポートフォリオの内容は、
Djangoを使ったWebアプリケーションです!
Webアプリケーションの中身は、
It技術の最新情報・トレンドを確認できる、そんなサイトです。
時間がない、ご多忙なエンジニアの方でも、
意欲があれば、このサイトを見て勉強できる。
そんなサイトを作れば、周りの方に貢献できるかな?
と思っています!

具体的な方法は、
Webスクレイピング等を用いて、
最新技術や、気になるトピックを一目見て確認できる。
そんなサイトです!
また、機能は順次追加していければ、と思っています!

更新頻度は、1週間に1~2回になると思います!
(2022/11/12 現在)

見守って頂けると幸いです!
ご指導、ご鞭撻のほど、よろしくお願いいたします。

スナガク

元記事を表示

(備忘録)python機械学習で参考になったコード

## cudfとは?
◯特徴
・NVIDIAが開発を行っている、GPUを使用して高速に処理が可能な”pandasみたいなもの”

## リストを逆から取り出す
例) リストを逆から取り出したい
~~~
s = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a[::-1] #[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

~~~
参考: https://www.delftstack.com/ja/howto/python/negative-index-python/

## 共起性を示したい時
例) AとBが同時に発生する回数について、辞書形式が保存する

“`
from collections import defaultdict, Counter
next_AIDs = defaultdict(Counter)
chunk_size = 30_000
sessions = subset_of_train.session.unique()
(中略)
sessions = su

元記事を表示

【求対案】Python3 で時計算をやってみる

非情報学科生向けのプログラミング講義で、以下のような問題が出題されました。

>時刻を入力したら、時計の短針と長針のなす角の角度aを求めるプログラムを作成しなさい。
>(0°≦a≦180°)
>また、入力される時(h)と分(m)は以下の条件を満たす整数であるとする。
>0≦h<12, 0≦m≦59

正時(m=0)の場合

60分進むごとに、短針は30度進むこと、6時丁度のとき180°になることを考慮して、以下のような愚直解を考えた。

“`python
def solution(h, m):
if m == 0:
if 6 > h:
a = 30 * h
elif h == 6:
a = 180
elif h > 6:
a = 360 – (h*30)
return a
“`

すべての場合

しかし、以上のような解では、正時以外の場合対応できない。幸い、時と分は整数のみであるから、1.5分のような場合は

元記事を表示

Oracle Cloudでdiscordのbotを無料ホストする方法

# はじめに
[Heroku](https://jp.heroku.com/home)の無料枠が11月いっぱいで終わっちゃう! みんなのbotをホストしてくれていたのに!
まあ無料なのでそんなこともあります。問題は、次どこにしようってことなんだが……。

色々探した結果、[Oracle Cloud](https://www.oracle.com/jp/cloud/)の無料枠が良さげだったのでここに記録しておきます。
Herokuほどお手軽ではないですが、どうせ一度セットアップしてしまえば放置するものなので頑張りましょう。
なおこの記事ではpython環境のdiscord.py前提とします。jsの方はわからん。
あとlsとかcdとか最低限のLinuxコマンド知識があるものとします。

# 用意するもの
1. デプロイするbot
1. Oracle Cloudアカウント
1. [teraterm](https://ja.osdn.net/projects/ttssh2/)などのSSH接続できるシェルアプリ
1. (optional)[WinSCP](https://winscp.net/e

元記事を表示

Pycaretチュートリアル_二値分類

# Introduction
色々な機械学習モデルを簡単に比較できるライブラリPycaretについて基本的な使用方法をまとめる。
今回は2値分類問題に適用する。

開発環境
– VScode/Jupyter

バージョン
– Python: 3.8.13
– pycaret: 2.3.10

参考サイト
– [Binary Classification Tutorial (CLF101) – Level Beginner](https://nbviewer.org/github/pycaret/pycaret/blob/master/tutorials/Binary%20Classification%20Tutorial%20Level%20Beginner%20-%20%20CLF101.ipynb#Binary-Classification-Tutorial-(CLF101)—Level-Beginner)

# パッケージインポート
“`py
import pycaret
pycaret.__version__ ## ‘2.3.10’
“`

# データの取得
`get

元記事を表示

【Selenium】急にModuleNotFoundError: No module named ‘packaging’が起きた

# 結論
`webdriver-manager==3.8.4`で、内部で使っている`packaging`モジュールが自動でインストールするように設定されてない**開発側のバグ**

# 経緯
あるサイトをスクレイピングするために、新しく環境を構築してから実行したらいつも通りに行かなかった。

“`zsh:Terminal
pip install selenium webdriver-manager
“`

## 環境

| System | Version |
| :-: | :-: |
| OS | MacOS Monterey(12.1) |
| zsh | zsh 5.8 (x86_64-apple-darwin21.0) |
| Python | Python 3.9.13 |
| pip | pip 22.2.2 |

# 該当のソースコード

“`python:scraping.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_man

元記事を表示

Pythonで球面調和関数をピラミッド型にプロットする話

コードの解説は後ほど書きますが先にコードだけ公開します。
このソースコードを利用するときは一言連絡していただけると幸いです。

# 遊び方
– `lmax`の値を自由にいじってあそぶ。大きい値を選びすぎるとなんかうまく出力されませんが`lmax=10`ぐらいだといい感じになります。
– `plt.subplots_adjust(wspace=0, hspace=-0.95)`はいい感じに、`hspace`の値を設定してあげてください。

“`python
from scipy.special import sph_harm
import numpy as np

import matplotlib
import matplotlib.pyplot as plt
import matplotlib.cm as cm

def Y_lm(l, m, θ, φ):
return sph_harm(m, l, φ, θ)

def real_Ylm(l, m, theta, phi):

if m == 0:
Y = Y_lm(l, m, theta,

元記事を表示

OTHERカテゴリの最新記事