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

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

ローカルPCからリモートPCへファイルを送る方法

## 本記事概要
本記事では、ローカルPCのMacからリモートPCのLinuxへ、ローカルPCでZIPに圧縮したファイルを、データ転送の通信を暗号化して転送し、その後解凍する方法について記載しています。

## 学べること
1.ローカルPCからリモートPCへファイル転送する方法
2.ファイルの圧縮と解凍の方法

## 前提
リモートPCへssh接続ができる
 本記事では、リモートPCであるLinux(IPアドレス:152.126.41.70、ユーザー名:root)へ転送します。

## 本編
### SSLでリモートPCに接続
1. ローカルPCのMacのターミナルを開きます。
2. `ssh ユーザー名@IPアドレス`でリモートPCにssh接続を実施します。
“`:コマンド
ssh root@152.126.41.70
“`
その後Passwordを入力し、ssh接続が出来たことを確認してください。

### 転送するフォルダを圧縮
ローカルPCのデスクトップにある、textフォルダを「text.zip」へ圧縮します。
1.ターミナルの作業ディレクトリを、`cd`コマンドを用いて

元記事を表示

Python – Conda仮想環境の構築方法

本稿では、Windows環境でAnacnda又はMinocodaを使ったPython仮想環境の構築方法を簡潔にご紹介します(Macもほぼ同じ、違いは文中で説明)。こちらの[ozaki_physicsさんの記事](https://qiita.com/ozaki_physics/items/985188feb92570e5b82d)はより詳しいので必要に応じてご参照ください。

### Anaconda又はMinicondaのインストール
Condaもpipもpythonのバージョンとパッケージを管理しますが、両者のグローバル環境での共存・競合がややこしいのでAnaconda又はMinicondaをインストールするときは少し慎重になる必要があります。現在pipを使っていて、仮想環境を構築したい場合は、このためだけにAnaconda又はMinicondaをインストールせず、pipを使うpyenv + venvなどの別の方法を検討した方がいいと思います(Windowsの方は[こちらの私の記事](https://yoheiko.com/?p=2899)を参照)。なおグローバル環境(root環境

元記事を表示

Python 複数のEventを扱いたいとき悩んだ時に見るコード例 (30秒で読めます)

2つのタスクを別のスレッドで実行し、各スレッドでキューに値を入れてEventをセットする。メインスレッドはどちらかのEventがセットされるまで待機し、Eventがセットされていて条件を満たしていれば実行するコード。

“`python
import threading
import time
from collections import deque
import random

class MyEvent():
def __init__(self) -> None:
self.event1 = threading.Event()
self.event2 = threading.Event()

class MyDeque():
def __init__(self) -> None:
self.q1 = deque([])
self.q2 = deque([])

def main_thread(event: MyEvent, q: MyDeque):
begin = time.time

元記事を表示

AWS VPC Subnet内の未使用IPアドレスをリストアップするPythonスクリプト

# やりたいこと

サブネット内で未使用のIPアドレス(IPv4)をリストアップしたい。

社内で「EKS使っていると、セカンダリIPとかでランダムにIP消費されるので、各ENIで使用しているIPを愚直に確認するのはしんどい」という声があり、一発でうまいこと出せる機能がなさそうだったのでスクリプトを書きました。

ちなみに今回の対象は[IP Address Manager ](https://aws.amazon.com/jp/blogs/news/network-address-management-and-auditing-at-scale-with-amazon-vpc-ip-address-manager/)プールから作成していないVPCでした。

# スクリプト

書いたスクリプトはGitHubにあげました

https://github.com/shu85t/aws_describe_unused_ips

使うには以下が必要です
– Python3.8以上
– boto3
– AWSの権限
– ec2:DescribeSubnets
– ec2:Desc

元記事を表示

LaTeX 表記法

最近,$\LaTeX$ 表記について,ちょっとなあ?と思うことが多かったので,メモしておきます。そんなこと,知ってるよという向きにはご容赦のほどお願いします。

以下では,△△を書くときは,〇〇の表記を $ $ で挟むと,□□になるという感じで書きます

# 関数名(など)

`\` を付ける

sin(x), cos(x), tan(x) などは \sin(x), \cos(x), \tan(x) などと書く。さすれば,$\sin(x)$, $\cos(x)$, $\tan(x)$ となる。

lim_{n \to \infty} a_n=0 は \displaystyle \lim_{n \to \infty} a_n=0 で,$\displaystyle \lim_{n \to \infty} a_n=0$

a \bmod m = 0 は $a \bmod m = 0$

a \equiv 0 \pmod{m} は $a \equiv 0 \pmod{m}$

対象となる関数名は,arccos, arcsin, arctan, arg, cos, cosh, cot, coth

元記事を表示

Pandas.DataFrameでとびとびの時系列データを補完する

## はじめに

テーブルデータ系のコンペでしょっちゅう書き方を忘れて調べるので備忘録がわりに書いておく。

データを集計していると日付が抜けることがある。
たとえば、販売履歴のデータから日付ごとに販売数を合計してDataFrameを作成したとき、販売履歴がない(1つも売れなかった)日があると、下のように日付が抜けたりする。

“`python
import pandas as pd

df = pd.DataFrame(
[
[“2022-03-04”, 10],
[“2022-03-05”, 12],
[“2022-03-06”, 14],
[“2022-03-07”, 16],
[“2022-03-08”, 18],
# 2022/3/9~2022/3/10が抜けている
[“2022-03-11”, 24],
[“2022-03-12”, 26],
[“2022-03-13”, 28],
# 2022/

元記事を表示

Variatinal AutoEoncoderをSubclassing APIで書いてみた

Variatinal AutoEoncoderを使う機会がありまして、tensorflowで書いてるコードをいろいろなサイトで見ていたのですが、だいたいのサイトでは、Sequential APIかFunctional APIで書いている気がします。なぜだ。。。
そこでSubclassing APIで書いてみようとしました。

Variatinal AutoEoncoderを理解したい方は下のサイトへGO
[Variational Autoencoder徹底解説](https://qiita.com/kenmatsu4/items/b029d697e9995d93aa24)

この記事では、ほぼコードだけ

[tensorflow公式のVAEコード](https://www.tensorflow.org/tutorials/generative/cvae)
上記のコードでは、Sequentialを使ってるのかな。これを一部変えてSubclassingにします。

Reparameterization Trick、エンコーダー、デコーダーに分けて書きます。

# Reparameteriz

元記事を表示

画像の類似度を測る楽な方法 imgsim

画像の類似度を測りたいなーと思い、何か楽な方法はないかと調べるとimgsimというものがありました。

参考にしました方の記事を載せます。
[参考元](https://qiita.com/john-rocky/items/12949f1408cb703df081#%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E3%81%A4%E3%81%8B%E3%81%A3%E3%81%A6%E7%94%BB%E5%83%8F%E9%A1%9E%E4%BC%BC%E5%BA%A6%E3%82%92%E6%95%B0%E5%80%A4%E5%8C%96%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8Bimgsim)

# インストール編

さっそく使おうと思い、インストール
“`
pip install imgsim
“`
で、さっそくインポート
“`
import imgsim
“`
動くか見てみると
“`
Traceback (most recent

元記事を表示

テトレーションカオスと戯れる

# テトレーションカオスと戯れる

## ギャラリー
まずはテトレーションカオスを可視化した図をご覧ください
![around_r2.4_i-0.5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167499/37a57d11-51a9-7109-5519-d9645d37ffe6.png)
![around_r-0.188_i0.235.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167499/f28acbe0-675f-8230-d60c-9b0510102591.png)

## 使用言語
この記事では以降、 python と IPython をメインで使用します。理由はテトレーションカオスの可視化するときのライブラリに matplotlib が最も適していると考えたからです。私の母語はRubyなのですが、こういうライブラリは python が充実してますね。とはいえ、Ruby でも PyCall などの

元記事を表示

【Python3】pytestで例外を検出する方法

メモ書きです

### 環境
– python3.8.10
– pytest6.2.5

### 実装例

“`py
# pytestモジュールをimport
import pytest

def target(int):

if int > 100:
# 100より大きい数値の場合例外を送出
raise ValueError(“不正な値です”)
return int * 2

def test_target():

test_int = 101
# ValueErrorを検知
with pytest.raises(ValueError) as e:
target(test_int)

# エラーメッセージを検証
assert str(e.value) == “不正な値です”

“`

“` with.pytest.raises(例外クラス) “` で例外を検知します。
注意点は以下の2点です。

– pytest.raises()

元記事を表示

PyQt5を利用してGUIアプリを作る時の注意点

# PyQt5を用いてGUIアプリを作る時の注意

PyQt5とはそもそも、Pythonように配布されているGUI作成モジュール群のことで、簡単なGUIであればすぐに作れてしまうことから、Tkinterとかと一緒によく紹介されているものです。
簡単に作れてしまうが故に、多少なら文法から外れた書き方をしても動作してしまいます。
このときに少しだけ沼にハマってしまったことがあったのでその時の解決策を備忘録として書き留めておきます。

***
## 何が起こったか
GUIソフトを作ろうと、コードを書きデバッグしているときに、エラー文すら出ずにエラーを繰り返した。
その時のPythonコードは以下の通りである。

・___モジュール名の解説___
>___PyQt5___
>>GUIを作動させる基本モジュール

>___qt_MainWindow___
>>GUIを構成するデータが入ったファイル

>___StarWindow___
>>StartWindowというメインウィンドウを構成するためのファイル。

~~~python
import sys
from PyQt5 import

元記事を表示

Pythonの野球シミュレーションでみるバント有効性 #3 シミュレーション作成編ⅲ

# 前回の記事
[Pythonの野球シミュレーションでみるバント有効性 #1 シミュレーション作成編ⅰ](https://qiita.com/con_2199/items/4bcf8ccb52363743bcc2)
[Pythonの野球シミュレーションでみるバント有効性 #2 シミュレーション作成編ⅱ](https://qiita.com/con_2199/items/37d40ecf09ca9ee37388)

本記事はこちらの続きになります。

# 目標について
 バントの有効性について再確認したい。詳しくは前回までの記事を参照してください。

# データ取得について
 前回の記事でどういった情報が必要であるのか分かったので、そのデータを取得したい。私が参照させて頂いたのは文献[1],[2]である。
特に文献[2]はかなり詳細なデータをみることができるので、主に併殺打率、犠飛確率の算出に利用させて頂いた。
ではPythonで取得しようと考えるところだが、私が勝手に定義したものが多く複雑なため、今回はExcelで各自算出した。

# ルール設定
 ランナーの進塁法則を以下に記述する

元記事を表示

PythonでN-gramを作る(Julius)

ソースコードを載せておきます
“`make_n-gram.py
import subprocess
import time
import os

path = os.getcwd().replace(os.sep,’/’)+”/” # 実行中のパス取得

srilm_path = “C:/cygwin64/srilm/bin/cygwin64/ngram-count”
mkbingram = “C:/Julius/julius-4.6-win32bin/bin/mkbingram.exe”

input_sentence = ‘sentence.txt’
corpus = ‘corpus.txt’
reversal_corpus = ‘reversal_corpus.txt’
forward_n_gram = “forward_n-gram.arpa”
backward_n_gram = “backward_n-gram.arpa”
bingram = “n-gram.bingram”

def strip_cmd_injection(instr):
inj = [“;”,

元記事を表示

Pix2Pixを使ったEURUSDのチャート予想(2)

続報である

https://qiita.com/EasyCording/items/02f6e54d8c133810f097

# 状況

* 1d足トレードではなく、より短期足(15m,30m,60m)との組み合わせで、3チャンネルを組み合わせた。
* バックテスト結果から、勝率60%を得た。
* Trades 170
* Win Rate [%] 60.0

![xxx.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/212914/913f6ff0-50a0-a2df-01d0-ab4c1af31cb8.png)

# 苦労した部分

* PIX2PIXでの学習データにおいて、過去値と予測値のスライド量は3/4とした。
* バックテストでは、バイナリオプションを想定したアルゴリズムを実装した。
* バックテストシグナルは、すべて予測チャート上での変化率で検出した。

# 実装

元記事を表示

Python基礎❷

# コメント

+ 複数行のコメント
+ ルール的には1行80文字まで。
+ スペースは4つ(全て合わせる)

“`csharp:main.py
# //1行コメント

“””
test
test
test
“””//複数コメント
“`
# 1行が長くなるとき

“`csharp:main.py
s = ‘aaaaaaa’ + ‘ccccccccc’
print(s)

s = ‘aaaaaaaaa’
+ ‘ccccccc’//プラスから始まっているため、このプラスが何かわからずエラーになる

s = ‘aaaaaaaaa’\ //バックスラッシュを入れることによって、まだ終わりではないこを表す。
+ ‘ccccccc’

s = (‘aaaaaaaaa’
+ ‘ccccccc’)//バックスラッシュが嫌であれば、カッコで囲む
“`
# if文

“`csharp.main.py
x = -12
if x < -13: //コロンで終わる print('正解')//スペースは4つが暗黙の了解 elif x === -12: print('正

元記事を表示

【AtCoder解説】PythonでABC243のA,B,C,D問題を制する!

**ABC243**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**や*

元記事を表示

PythonでAmazon PA-API 5.0を使って商品情報を検索する (SDK未使用)

Amazon Product Advertising API 5.0 (商品情報API) で商品情報を検索するコードの Python 版です。

公式の API テスト実行ツールでは Java と PHP のみだったので、Lambda などで Python を使いたくなり書いてみました。公式ドキュメントを参考にしながら、SDK を使わずに SHA-256 での署名生成も行っています。(AWSのリソースにアクセスするときも、この方法が使えるようです)

### PA-API 公式ドキュメント
[https://webservices.amazon.co.jp/paapi5/documentation/sending-request.html](https://webservices.amazon.co.jp/paapi5/documentation/sending-request.html)

### API を利用するために必要なもの
– Amazon アソシエイトのパートナータグ
– `xxxxxxxxxxxxxxx-22`
– [PA-API](https://affili

元記事を表示

【VSCode】IntelliCodeがアクティブにならないと思ったら仮想環境の参照先が違った

## 発生した問題

VSCode起動時に以下のようなエラーメッセージが出てきました。

申し訳ございません。Python の IntelliCode サポートのアクティブ化で問題が発生しました。
詳細については、”Python の言語サポート” および “VS IntelliCode” の出力ウィンドウをご確認ください。

[Visual Studio IntelliCode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)はすごく賢い補完機能です。
これの有無でコーディングの効率がかなり変わってくるので、アクティブになってくれないと非常に困ります。

## 結論

**原因**
プロジェクトフォルダの名前を一度変更したためだと思われる。(未確定)

**対処**
フォルダごと移動、仮想環境を作り直す。

## 環境

– Windows10
– エディタ : VSCode
– Pythonのバージョン : 3.10.2
– 環境管

元記事を表示

【超初心者】3カ月間の機械学習マスターコース

2022年1月11日~4月11日の3カ月の間、Aidemy機械学習マスターコースを受講。
その締めくくりとして「手書き文字認識」コードを作成しました。
機械学習もプログラミングも全くの無知でしたが、3カ月頑張った集大成です。
##

~業務で使用しているタクシー領収書の金額部分の手書き文字認識~

【結論】
まず初めに結論から。
学習の性能自体はよかったのですが、予測は全くダメでした。
このままでは使い物になりません…
Aidemy終了後も性能向上を目指します!

【はじめに】
・今までの業務の流れ
タクシー使用時、領収書に金額を記入(もちろん手書き)。
使用済みタクシー領収書を「日ごと」と「月ごと」に集計して請求処理をする。
枚数的には、10枚/日くらい。

・手書き文字認識できれば…
タクシー領収書を社給スマホで撮影、クラウド上のフォルダに置く。
それらを「日ごと」の金額をエクセルに保存。
月ごとにエクセルで集計するまでがプログラミング、
その後の請求処理のみ人間が行う。
というのが目標。

参考サイト
[薬剤師のプログラミング学習日記]
(https://www.yakupr

元記事を表示

bashrcでPythonのバージョンを指定する方法

# はじめに
たまに使うので備忘録として残しておきます。

# bashrcとは
bashを起動したときに読み込まれる設定ファイルです。

https://tech-up.hatenablog.com/entry/2019/04/04/225638

# 方法

“`
$ python -V
Python 3.7.3
“`

“`
$ sudo vim ~/.bashrc
“`

bashrcを開いて、以下を追記します。

“`md:bashrc
alias python=python3.8
“`

以下のコマンドで設定を反映させます。

“`
$ source ~/.bashrc
“`

反映されているかどうか確認してみます。

“`
$ python -V
Python 3.8.0
“`

無事変更されました。

元記事を表示

OTHERカテゴリの最新記事