- 1. 【Python】input() で入力後の改行を防ぐ方法
- 2. 【メモ】「Python 実践データ分析100本ノック」のpulpエラーについて
- 3. Logging参考資料
- 4. データクレンジングをしてみよう! 欠損値を削除する方法
- 5. Djangoの環境構築手順
- 6. Python小技集 – #1 リスト/タプルから重複要素を削除する方法
- 7. python 関数名 print
- 8. shell2httpを作ってHTTP経由でお手軽にCLIツールを実行する
- 9. matplotlibのsubplotsのcolorbarを共有する
- 10. PIL.Image.Imageをdiscord.Fileに変換したい
- 11. PythonのSeleniumでWebを自動操作する
- 12. Pythonをwsl2-Debianにインストールする
- 13. Python-VLC の使い方
- 14. WindowsのPythonでデスクトップ通知(トースト)作ってみた【WinRT】
- 15. aws-cliとjupyterでAWSサービスのセットアップ
- 16. Tensorflowで自分に合った彼女を探すCNNを実装しようとしてみた~SSDで画像検出!~(第三回)
- 17. Python3_エンジニアデータ分析試験対策_Part1
- 18. Python3: A4横 の PDF を A3 の PDF に変換
- 19. 子供のための単語起こしアプリケーション
- 20. abstract(抽象化) で継承時のメソッドの入れ忘れを無くそう!
【Python】input() で入力後の改行を防ぐ方法
思いついたのをメモ。
“`python
a = input(“a : “)
b = input(” / b : “)
“`
これを実行すると、通常だと
“`
a : 1
/ b : 2“`
となるが、これを
“`
a : 1 / b : 2
“`
というようにしたい場合。
これでできる。
“`python
def input_mod(__prompt: object = …, end: str = “\n”) -> str:
result = input(str(__prompt) + “\0337″)
print(f”\0338\033[{len(result)}C”, end=end)
return result
“`
ただ、カーソルの位置を動かしているだけなので、スクロールが発生するほどの長文には使えない。
【メモ】「Python 実践データ分析100本ノック」のpulpエラーについて
`前提条件`
– macOS Monterey 12.4
– Anaconda 4.12.0
– Python 3.8.8
– jupyter-notebook 6.4.10condaコマンドを用いてpulpライブラリーを追加すると第7章のノック61において以下のようなエラーが出た。
“`
Pulp: Error while trying to execute, use msg=True for more detailscbc
“`
詳細はわからないが、condaでpulpをインストールするとダメなようで`pipでインストールする`と解決した。
(※“condaとpipを混ぜると環境が壊れることもあるらしい“ので自己責任でお願いします。)
既にcondaでpulpをインストールしている場合は以下のコマンドを実行してからpipでインストールし直す。“`
% pip uninstall pulp
“`
アンインストールが完了したら、以下のコマンドを実行する。
まだpulpをインストールをしていない場合も同様に以下のコマンドでインストールすればできる。
“`
% pi
Logging参考資料
# 背景
PythonのLog周りのライブラリ選定ついでにLoggingについて調べ、自分でまとめる必要性が無いくらいに情報が豊富だったので資料をプールしておきたいだけ# 参考資料
Loggingの仕組みを分かりやすく書いてある
https://hackers-high.com/python/logging-overview/Loggingを使う際のベストプラクティス的なコードがある
https://qiita.com/FukuharaYohei/items/92795107032c8c0bfd19Loggingの注意点
https://qiita.com/amedama/items/b856b2f30c2f38665701公式ドキュメント
https://docs.python.org/ja/3/howto/logging.html複数ファイルにまたがる際の書き方
http://joemphilips.com/post/python_logging/
データクレンジングをしてみよう! 欠損値を削除する方法
## 1.データクレンジングとは
データクレンジングとは、破損したデータ、不正確なデータ、無関係のデータを特定して解決する手法を指します。 データ処理におけるこの重要な段階は、データスクラビングと呼ばれます。## 2.データクレンジングの必要性
1番でも説明した通り、無関係のデータなどがあった場合、正しい予測結果を得られなくなることや、回帰分析においては、強い相関がみられる2変数のデータなどがある場合、※多重共線性などが発生してしまったりと、とても都合がよろしくありません。
分析業務においてもデータクレンジングはほどんどの業務を占めており、実際企業が保有しているデータは汚れているデータがほとんどなどでとても欠かせない作業になります。### 3.実際にデータを見てみよう
“`Python
#必要なライブラリのインストール
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
%matplotlib inline
“`
“`
Djangoの環境構築手順
# 仮想環境作成
Webアプリ開発ではパッケージの依存関係で悩まされることがあるので、プロジェクト毎に仮想環境を構築する。 色々な仮想環境があるが、Pythonで用意されている仮想環境構築ツールを使ってみる。また、Pythonを使ったプロジェクトでは、プロジェクトごとに必要なパッケージが異なる。
あらゆるパッケージをローカルにインストールすると、ごちゃつくので、プロジェクトごとに仮想環境を作って、そのプロジェクトに合致したパッケージのみをインストールして使う。
これによりプロジェクトごとに仮想環境が作成され、パッケージもその仮想環境ごとに管理できる。# Djangoの管理者ユーザー作成
?管理者ユーザーを作成する。
`python manage.py createsuperuser`# 仮想環境作成と有効化、停止
?このコマンドで今いるディレクトリ配下にmyenvディレクトリが作成される。
`python -m venv myenv`
?このコマンドで作った仮想環境を有効化できる
`source myenv/bin/activate`
?うまくいくとユーザー名の左に仮想環境
Python小技集 – #1 リスト/タプルから重複要素を削除する方法
こんにちは!beatbox4108です。
今日は**Pythonでリスト/タプルから重複要素を削除する方法**について説明していきます。
方法は2種類あります。
* setを使う方法
* dictを使う方法
* dict+zip (応用)# setを使う場合
Pythonには重複しない値の集合である`set`があります。
ふつうはこれを使うのが良いでしょう。
“`python3
l=[1,1,2,3,3,3,5,6,6,9,0] # サンプル# setを使う場合
a=list(set(l))
print(“setを使う場合:”,a)
“`“`
setを使う場合: [0, 1, 2, 3, 5, 6, 9]
“`アンパックを使えばもっと簡潔に書けます。
“`python3
l=[1,1,2,3,3,3,5,6,6,9,0] # サンプル# setを使う場合(別解)
b=[*{*l}]
print(“setを使う場合 (別解):”,b)
“`
“`
setを使う場合 (別解): [0, 1, 2, 3, 5, 6, 9]
“`:::note
python 関数名 print
“`py
print(f”{self.__class__.__name__} {inspect.currentframe().f_code.co_name}”)
“`こういうのすぐ出てこない時ある
1行でかけてもっと処理軽くて汎用的にコピペできて短くかけるやつあったら誰か教えてください。
shell2httpを作ってHTTP経由でお手軽にCLIツールを実行する
[shell2http](https://github.com/msoap/shell2http)をsnapで入れると動かず、[Flask-Shell2HTTP](https://github.com/eshaan7/Flask-Shell2HTTP)はファイルを直接弄らないといけないのでPythonで作ってみました。
https://github.com/GitHub30/shell2http
[![Python](https://img.shields.io/pypi/pyversions/shell2http.svg)](https://badge.fury.io/py/shell2http)[![PyPI](https://badge.fury.io/py/shell2http.svg)](https://badge.fury.io/py/shell2http)
# インストール“`bash
pip install shell2http
“`# 使い方
http://localhost:8080/ をブラウザで開くことでコマンドが実行されます。8080は変更可
matplotlibのsubplotsのcolorbarを共有する
## 動機
以下のようなcolorbarを共有したグラフを作成したいものとします.
![subplots-with-cbar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355593/2b6055e3-96cc-70e2-7053-f2d8b5752e0a.png)
## 結論
以下のようなコードを利用します.
contourfでcolorbarを生成して最終的にそれをfigに加える形で再現します.
注意点としては,colorbarのスケールが各々異なる場合であっても最終的に表示されるcolorbarはfor文の最後にplotされたものに準拠することです.“`python
import numpy as np
import matplotlib.pyplot as pltplt.rcParams[“font.family”] = “Times New Roman”
plt.rcParams[“font.size”] = 14
plt.rcParams[‘mathtext.fonts
PIL.Image.Imageをdiscord.Fileに変換したい
こんにちはbeatbox4108です。
今回は少しPythonを書いていて躓いた点を覚書程度にまとめましたので見てみてください# TL;DR
:::note
`io.BytesIO`を使おう。
:::
:::note warn
`seek(0)`するのを忘れずにしよう。
:::
# 本文
Pythonで、Discordのスラッシュコマンドに反応して画像を送るbotを作っていた時のこと…**あれ?ファイルに出力しないと送信できなくね?**
この時の環境、クラウド上で容量が結構少なかったのでどうしてもファイルに出力するのは避けたかったんです。
でも**ファイルオブジェクト**かパスじゃないと送信できないし…と、気づいたんです。そうか`BytesIO`介せばいいのか!
ということで書いたこちらのコード、ダメな点が一つありました。
“`python3
# im は PIL.Image.Image
fileio=BytesIO()
image.save(fileio,format=”png”)
await interaction.followup.send(file=d
PythonのSeleniumでWebを自動操作する
Chromeの操作を自動化したくてSelenium4を使ってみました。Selenium4を調べてみると結構機能が多かったので、私が使いそうなものだけ記載してあります。
# インストール
まずSeleniumで使用するChromeをインストールします。
“`bash:
apt install google-chrome-stable
“`次にSelenium4をインストールします。
“`bash:
apt install python3-selenium
“`# ライブラリのインポート
Seleniumのライブラリをインポートします。
“`python:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdri
Pythonをwsl2-Debianにインストールする
Python3(ver. 3.10.6)をwsl2版Debian(ver. 11.3)にインストールした際、遭遇したエラーと対処です。言うほどエラーですかね?
# 最も簡潔と思しき道筋
1. apt で依存関係のパッケージをインストール。パッケージはマニュアルにリストされている。
https://devguide.python.org/getting-started/setup-building/index.html#build-dependencies
2. パッケージをダウンロードして解凍し、“`./configure“`を実行した後、コンパイルしてインストールする。
“`
$ ./configure –enable-optimizations –with-lto –with-ensurepip
$ make -j 8
$ sudo make install
“`
“`make install“`だけ“`sudo“`するのにこだわりはない。インストール先がユーザーローカルではなく、root権限でないと書けない場所なので“`sudo“`で実行した。このような
Python-VLC の使い方
Ubuntu 22.04 でライブラリーのインストール
“`bash
sudo apt install python3-vlc
“`“`py:replay_mp4.py
#! /usr/bin/python
#
import sys
import vlc
import timesys.stderr.write(“*** start ***\n”)
file_mp4 = “./sample-5s.mp4”
media = vlc.MediaPlayer(file_mp4)# start playing video
media.play()loop_forever = True
while loop_forever:
try:
time.sleep(5)
except KeyboardInterrupt:
loop_forever = False
sys.stderr.write(“*** interrupted ***\n”)
#
sys.stderr.write(“*** end ***\n”)
“`mp4 ファイルはこちらからサン
WindowsのPythonでデスクトップ通知(トースト)作ってみた【WinRT】
win10toastを使っているのですがWin32のため、WinRTで実装してみました。シングルファイルモジュールで作ってみました。
https://github.com/GitHub30/win11toast
[![Python](https://img.shields.io/pypi/pyversions/win11toast.svg)](https://badge.fury.io/py/win11toast)[![PyPI](https://badge.fury.io/py/win11toast.svg)](https://badge.fury.io/py/win11toast)
## インストール“`bash
pip install win11toast
“`## 使い方
“`python
from win11toast import toasttoast(‘Hello Python?’)
“`![image](https://user-images.githubusercontent.com/12811398/183365362-dd163b1d
aws-cliとjupyterでAWSサービスのセットアップ
システムセットアップを簡単にするための全ての設定
# 環境
・MacBook Pro
・macOS Mnterey 12.5
・Apple M1 Max## 1.AWS/IAM
AWSのIAMから、今回のjupyterでアクセスできる権限を持ったIAMユーザーを作成し、アクセスキーとシークレットアクセスキーを入手する。
そのキーの取り扱いには十分に注意する。## 2.local/仮想環境の作成
仮想環境で実行するのがおすすめ。
Miniforge3+condaで作成しているので、 `conda acrivate hoge` という形で環境に入る。### モジュールのインストール
`pip install awscli`## 3.cliの設定
`aws configure –profile hoge`
AWS Access Key ID [None]: `{アクセスキー(各自)}`
AWS Secret Access Key [None]: `{シークレットアクセスキー(各自)}`
Default region name [None]: `{us-west-2(←オレ
Tensorflowで自分に合った彼女を探すCNNを実装しようとしてみた~SSDで画像検出!~(第三回)
# 目的
前回、顔をタイプ分けしてみたいなことをしてきました!!今回は最初に試してた写真全体から雰囲気を決定するみたいなのを試してみようと思いました!!
# 試したこと
#### 1 OpenCVのfullbody検知機?で人物を切り抜いてみる!
最初は、前回の顔切り抜きを応用して、全身の画像を切り抜いてしまおう!と試してみました!
“`python:変更点
IMG_FILE = “haarcascade_frontalface_default.xml”
-> “haarcascade_fullbody.xml”
“`
結果から言うと、うまくいきませんでした笑なんか、とりあえず長方形に色々切り抜いてくれて…
あいにく、原因がわかるほどの知識はありませんが、とりあえず別の方法を試してみようと…#### 2 マスク作って、切り抜く!!
[このサイト](http://www.otupy.net/archives/39235274.html)で、クロちゃんを切り抜くために、OpenCVのブラーを使って、こう、明るい、暗いみたいな感じでのマスクを作っていく方法をみてみたのです
Python3_エンジニアデータ分析試験対策_Part1
本記事は、Python3エンジニア認定データ分析試験におけるチートシート作成を目的としています。
本試験の概要や出題範囲は下記サイトをご確認ください。
チートシートは随時更新していきます。https://cbt.odyssey-com.co.jp/pythonic-exam.html
また本内容は、PRIME STUDYのデータ分析試験対策模試を参考に作成しています。
本内容にて予習後、下記テストを受けることをお勧めします。https://study.prime-strategy.co.jp/
# 1. データエンジニアの役割
## 1.1 Pythonについて
Pythonは、データ分析が得意。
機械学習やディープラーニングでもよく利用されている。
Pythonの特徴と苦手分野は以下。### 1.1.1 Pythonの特徴
プログラムのルールや文法がシンプル
標準ライブラリと外部のパッケージが豊富
データ分析以外にも、幅広い用途で活用できる
オープンソースとして提供されている### 1.1.2 Pythonの苦手分野
Webデザイン
ゲーム開発など、高速な処理が
Python3: A4横 の PDF を A3 の PDF に変換
“`py:pdf_a4_a3_landscape.py
#! /usr/bin/python3
#
# pdf_a4_a3_landscape.py
#
# Aug/08/2022
#
import sys
import PyPDF2
#
# ——————————————————————
def pdf_merge_proc(pdf_reader1):
pages= pdf_reader1.getNumPages()
nn_out = int((pages + 1) / 2)
sys.stderr.write(“pages = %d\n” % pages)
sys.stderr.write(“nn_out = %d\n” % nn_out)
#
pdf_writer = PyPDF2.PdfFileWriter()
#
for icount in range(nn_out):
it = icount * 2
page_obj_a = pdf_reader1.g
子供のための単語起こしアプリケーション
# 1.はじめに
将来子供が出来たとき仕事の傍ら教育にも力を入れていきたいと思っており、教育用アプリケーションの作成を考えています。
そのため簡単な英単語(言語はどれでもいい)をキーボード上のキーで入力することで、単語を出力してより優しく理解していただけたらいいなと思います。# 2.手順
## (1)keycode(キーコード)を確認する
キーボード上のキーには、それに対応するコードがあります。
このアプリケーションの作成に当たっては、キーコードが非常に重要になります。
(最初はkeycodeではなく、keysymで試しましたが、keycodeのほうがスムーズに作業が行えました。)
例えば、「A」キーは「65」、「C」キーは「67」となる。下のURLを参考にしました
http://faq.creasus.net/04/0131/CharCode.html
## (2)キーコードに対応するテキストを表示するには
“`
buffer = tkinter.StringVar()
変数 = buffer.set(文字列)
“`
キーコードに対応する文字を出力するには、
abstract(抽象化) で継承時のメソッドの入れ忘れを無くそう!
# 以下の2つのクラスを作ると想定します。
“`Python
class Calc1():
def calc(self, a, b):
c = a + b
return cclass Calc2():
def calc(self, a, b):
c = a – b
return c
“`次のように使う予定です。
“`Python
l = [Calc1(), Calc2(), Calc1(), Calc2()]for calc in l:
print(calc.calc())
“`こういった使い方をする場合、2つのクラスには `calc()` メソッドが必須です。
しかし久しぶりに新しい `Calc3` クラスを作る際、`calc` の実装を忘れてしまうかもしれません。
単純なプログラムならエラーを見てすぐに実装を忘れていたことに気付けるかもしれませんが、なるべく想定外の事態は避けたいです。
そんなときには `abstract` を使いましょう!
# abstrac