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

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

PyTorchでCPUよりGPUの方が遅いケース

# はじめに
PyTorchを使っていたら、GPUよりもCPUの方が早いケースがあったのでメモ書き。

# 今回のケース
sklearnのデータセット、「ボストンの住宅価格」のデータをPyTorchでMLPを定義して学習させた。
その時にGPUを使うよりもCPUの方が早かった。

# 環境
– Python:3.9.7
– scikit-learn:0.24.2
– PyTorch:1.11.0
– CPU:Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz 3.60 GHz
– GPU:RTX 2070 SUPER

# 当該のソースコードと実行結果

ソースコード

“`python
import sklearn.datasets as skdata
from sklearn.model_selection import train_test_split
import pandas as pd
import torch
import torch.nn as nn
import torch.o

元記事を表示

SVDでお手軽irisデータセットの可視化と分類

# SVD、もしかして需要がない?
昨日の朝に、[特異値分解(SVD)](https://qiita.com/gyu-don/items/2e4fd7e945d8c349afb5)に関する記事を書きました。ですが、あまりにもLGTMが少なくて、「もしかして特異値分解って需要がない?」という気持ちになりました。

今回は、SVDのよさを知ってほしくて、記事を書きます。
SVDは次元が大きいデータを整理して次元を圧縮できる、とても素晴らしいアルゴリズムなのです。

例として、機械学習の練習でおなじみの、アヤメの種類を特徴から分類するIrisデータセットを使って次元削減して、2次元で図示してみましょう。
**この記事は、機械学習よりは、次元削減の方法や、それによって図示がしやすくなることに重みを置いています。**

## Irisデータセットをscikit-learnから取ってくる

このデータセットでは、4つの次元の特徴量と、0, 1, 2のラベルが用意されています。4次元というのは人間には難しく、なかなか図示もしづらいですね。

“`python
from itertools imp

元記事を表示

典型90問004Cross SumをPythonで解く!

# はじめに
AtCoder現在茶色(年内には緑が目標!)のあんこちゃん(@Chunky_RBP_chan)です。\
典型問題は抑えとかねばということで、★2〜★5に取り組んでいます。\
Pythonで取り組まれている方も多いと思うので自分の解答をシェアしたいと思います!

# 問題
https://atcoder.jp/contests/typical90/tasks/typical90_d

# 解法
列に関する和と行に関する和を持つ配列をcolsum、rowsumとします。\
i行j列で求める数はrowsum[i]+colsum[j]-A[i][j]であり、この計算をすべての要素について行えばよいです。

“`python
H,W = map(int, input().split())
A = [list(map(int, input().split())) for _ in range(H)]
colsum = [0]*W
rowsum = [0]*H
for i in range(H):
rowsum[i] += sum(A[i])
for j i

元記事を表示

ローカルサーバー上のPlotly(Python)グラフの表示方法

## 概要

私は家では、ノートPC(Chromebook)から計算用のローカルサーバー(ubuntu)にsshで繋いで、サーバー上でプログラミングしています。この環境だと、ノートPCの気楽さとサーバーの計算力のいいとこ取りができます。

ところで、Pythonでなにか計算するときの結果の可視化にはよく[Plotly](https://plotly.com/python/)を使うのですが、サーバー上のPythonスクリプトでは `fig.show()` でグラフを表示することができません。

PlotlyはHTMLファイルを出力します。HTMLファイルならば、WEBサーバーを立ち上げて配信すればいいじゃないかと思い実際にやってみたところ、グラフを確認しながら快適に計算できました。

## 方法

以下の手順で勧めます。

1. サーバーパソコンでWEBサーバーを立ち上げる(バックグラウンドで実行)
1. サーバーパソコンで計算し、HTMLファイルを出力する
1. ノートPCからローカルサーバーにアクセスする

### WEBサーバーを立ち上げる

WEBサーバーはなんでもよいのですが、

元記事を表示

AtCoder ABC 247E – Max Min : 一方を固定して条件を満たす範囲の探索 O(NlogN)解

https://atcoder.jp/contests/abc247/tasks/abc247_e

# この解法は?
https://atcoder.jp/contests/abc247/editorial/3736
の最後にある$O(NlogN)$の解法です。

# 前処理
解説の前半(Bを求めること)と同じです。

例えば、A=$[10, 3,2,4,3,4,3,2,1, 3, 6, 2,4, 4]$という入力があり、$X=4, Y=2$だったとすると、2未満、5を超過する数でこの配列を分割し、$[3,2,4,3,4,3,2,1]$と$[3]$と$[2,4,4]$を得ます。それぞれの配列に対して、問題と同じ組み合わせの数を求めてその和が最終的な答えとなります。(ある区間が分割する対象の数というのはその数を含んだ瞬間にそれ以上の条件を満たす区間が作れなくなるためです)

補足:この発想は次の処理を簡単にするために非常に有効なので、「次の処理を思い浮かんだからこの前処理をしたのか?」と思われるかもしれませんが私はこの問題を読んだときに、分割できるな。と思い分割しました。
明らかに一般

元記事を表示

.pyファイルからexeファイル化の方法とNo moduleエラーについて

## 初めに
pythonを使って業務効率改善できそうなプログラムを作ったはいいけど、全くプログラミングの素養のない人にどうやって使ってもらえばいいのか…

方法としてはいくつか考えられるが、exeファイル化というものが一番簡単そうだったので、その手順のまとめと、躓いたところについて記載する。
(注:初心者なので、間違いなどあるかもしれません。また、間違いなどあればご指摘頂ければ幸いです。)

## exeファイル化概要
簡潔に述べると、下記コマンドを実行するだけ。
“`
pyinstaller test.py –onefile
“`
細かい手順については、こちらに関しては下記サイトに簡潔にまとまっているので、こちらを参照頂いた方が良いと思われます。
[【自動化】pythonコードをexeファイル化する](https://qiita.com/konitech913/items/6259f13e057bc25ebc23)

## 躓いたところ
exeファイル化までは問題なく実施できたが、実行してみたところ、下記のエラーが発生した。
“`
moduleNotFoundError:

元記事を表示

簡易コマンドパレットを秀丸エディタとサクラエディタとMeryに実装した(experimental)

# 3行くらいで説明
– VSCodeのコマンドパレットのようなものが、[秀丸エディタ](https://forest.watch.impress.co.jp/library/software/hidemaru/)や[サクラエディタ](https://forest.watch.impress.co.jp/docs/news/1248206.html)や[Mery](https://forest.watch.impress.co.jp/library/software/mery/)で使えると面白そうです。
– というわけで作りました。こちらからインストールできます。(実験的で、起動は遅く機能も限定的ですので、使うには遊び心が必要です)
– [秀丸エディタ用](https://github.com/cat2151/mini-command-palette-hidemaru)
– [サクラエディタ用](https://github.com/cat2151/mini-command-palette-sakura-editor)
– [Mery用](https://gi

元記事を表示

FlaskでWebauthn

## はじめに
最近では様々なサイバー攻撃が起こっており、セキュリティに対する意識も高くなってきているかと思います。
その中でもユーザー認証というところに着目してみたいと思います。

## ユーザー認証方法の代表例
| # | 認証方法 | セキュリティリスク | 備考 |
| —- | —- | —- | —- |
| 1 | ユーザーID + パスワード | 中 | 言わずもがな、某アプリでパスワード漏洩で大変なことになってましたね。。。 |
| 2 | 多要素認証 | 低 | ユーザーID + パスワード + SMS認証などで現在はこの方法が推奨されていますね。 |
| 3 | 生体認証 | 低 | ここ数年で出てきたのかなと思っています。Yahoo!などがいち早く取り入れていましたね。 |

まだまだあると思いますが主にということでここまでにしておきます。
※セキュリティリスクは主観でざっとつけたのでご意見等あるかもしれませんがお見逃しください。。。

## どれがいいの?
利用されるサイトの質などにもよると思うので、一概にどれが一番ということは言えませんが、一

元記事を表示

数独ソルバー作ってみた

数独ソルバーを作成してみました
いくつか機能追加したかったり、終了後に再度起動できるようにしたかったりするんですがいったん完成で。

“`
from matplotlib.pyplot import box
import pygame
from pygame.locals import *
import sys
import copy

class Sudoku():
def __init__(self):
# pygame初期化
pygame.init()
# キャンバス作成
self.SURFACE = pygame.display.set_mode((450, 550))
# タイトル作成
pygame.display.set_caption(“GAMEをつくろう”)
# フォント指定
self.font = pygame.font.Font(None, 40)
self.box = [0]*81
se

元記事を表示

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

**ABC247**の**A,B,C,D,E,F問題**を、**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を使うためにVisual Studio Codeをインストールしてみた

# はじめに
[前回の記事](https://qiita.com/_starfields_/items/cec6efc796e27acfe8e8)でなんとかPythonをインストールすることができました。
**いざ!プログラミング!** と思いましたが、どうやらプログラムを書くにあたってはpowershellでもできるが、「テキストエディタ」や「IDE」があった方がいいようです。
なので早速インストールしてみることにします。

参考

https://camp.trainocate.co.jp/magazine/python-texteditor/

https://engineer-step.com/entry/ide-texteditor/

#### IDEってなんだ
またしても知らない単語が出てきました。

>IDE(Integrated Development Environment :統合開発環境)は、テキストエディタの機能に「プログラムの実行」や「ライブラリの管理機能」「編集記録」など、開発時にあると便利な機能を加えたアプリケーションです。
>便利な機能がたくさん備わっ

元記事を表示

【米国株】長期投資においてドルコスト平均法(DCA)とRSI積立はどちらの方が儲かるか?

## はじめに
どうも、米国株を長期保有しているものです。
普段ドルコスト平均法で株を購入しているのですが、もっと安く株を買いたいという欲望はないでしょうか?

そこで今回はRSIという買われすぎか、売られすぎかを判断するための指標を利用して、普段より **売られすぎている(安く買える)** ときだけ積立をすれば、ドルコスト平均法より儲かるのではと思い検証した次第です。

### RSIとは
> RSIとは、テクニカルチャートのひとつで、買われすぎか、売られすぎかを判断するための指標として利用されています。
数値は0~100で表され、一般的に70~80%以上で買われすぎ、20~30%以下で売られすぎと判断されます。
引用元 : [初めてでもわかりやすい用語集RSI(アールエスアイ)](https://www.smbcnikko.co.jp/terms/eng/r/E0004.html)

### ドル・コスト平均法(DCA)とは
> ドル・コスト平均法とは、価格が変動する商品に対して「常に一定金額を、定期的」に購入する方法です。投資金額を一定にすることで、価格が低いときには購入量(口数

元記事を表示

python-SciencePlotsで論文用の図を作成してみた

# この記事について
pythonユーザーであれば可視化ツールmatplotlibの利用者は多いだろう。
しかし論文用の「良い感じの図」を作成するには細かいパラメータをいじる必要があり手間がかかる。
そこで今回はSciencePlotsという、簡易的に「良い感じの図」を出力してくれる拡張パッケージを紹介する。

# 導入方法
## SciencePlotsのインストール
[公式PyPIページ](https://pypi.org/project/SciencePlots/)からインストールできる。
もしくは以下のコマンドを実行する。
“`bash
pip install SciencePlots
“`

## latex関連パッケージのインストール
SciencePlotsはlatex環境で動作するため、以下のコマンドで必要パッケージをインストールする。
“`bash
sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended cm-super
“`

# 使い方
– プログラム内で説明する。

元記事を表示

続 SQLite3 + JSON (+ Python)

# 続 SQLite3 + JSON

ちょっと実用的な情報が少ないと感じたのでせめて使えるレベルまでには持ってゆきたいと。
そう思いつつも、実際は情報をまとめている方々はちらほら見当たるのだけれどもその目的によってかなり使い方が異なるなーなどと、自分なりにまとめておかないとなと思った次第で。
(それくらいの努力はしたくなる程度に魅力的なのがJSON対応)

> フリーダムなEXCELシートをよく目にする機会があるとか、ペーパーレスって何ですか?おいしいものですか? みたいな現場とか案件とか抱えていたり抱えそうになっていたりというあなたには絶対役立つソリューション。> **SQLite3 + JSON**

## プライマリーキー問題 +

これは設計というよりは運用の話。
以前のポストにも書いた通りでレコードのJSON文字列の中の一要素に絞ってキーを指定するなどという芸当は出来なさそうなのでプライマリキーだけは列を分けると便利。だけど、だからと言ってJSON文字列にそのキーが含まれていないとこれまたスーパー不便なのでプライマリキー列とJSON文字列両方にプライマリキーのデータが入

元記事を表示

Python,seleniumを使用して検索結果1位の商品価格を取得する

## 【経緯】
クラウドワークスを眺めていたら、
「Yahooショッピング内で指定したワードでの検索結果1位の商品価格をお知らせください」
というタスクがあったので、勉強がてらプログラムを組んでみた。

## 【事前準備・使用環境】
– Windows10
– Google Chrome
– Python3.10.4(64-bit)
– Selenium 3.141.0

## 【今回作成するプログラム】
始めに今回作成したプログラムを載せておきます。
![全体.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2628083/8bd6ac75-7015-0089-f246-d648fe85c83d.jpeg)

今回やることを雑に分けると、
1. ChromedriverとURLを指定
2. txtファイルから指定ワードを読み込み、リスト化する
3. 作成したリストをfor文で回す
といった感じです。

## 【importするもの】
![importするもの.jpg](https://qiita-i

元記事を表示

Mac最強の電卓アプリ

# きっかけ
ある日、M1のmacに乗り換えたことにより、今まで使っていた電卓アプリが使えなくなった。
mac標準の電卓は私にとってはちょっと使いにくい。

# 答えはPythonにあり
ターミナルなりiTermなりでPythonが開ければ、対話形式で計算ができて、電卓としては申し分ありません。
だがこれでは`ターミナルを開く`→`Python`という二段階が必要。
でもやっぱりSpotlightなりAlfredなりで一発で開けられるアプリが欲しいなぁ。

# 簡易的なアプリを作る
というわけでAutomatorを使って簡易的なアプリを作ります。

1. Autmatorを開き、新規書類を選択。
2. 書類の種類は「アプリケーション」を選択。
3. Automatorで`AppleScriptを実行`を選択し、以下の感じでスクリプトを入れる。

“`applescript
on run {input, parameters}

tell application “Terminal”
do script “exec ~/venv/bin/python” –ここはそれぞれ

元記事を表示

mcrconとdiscord.pyを用いてdiscordからminecraftサーバに出力する

まず初めに

こちらを読まれていない方は参考にするとより本記事を理解していただけると思います。

https://qiita.com/mutchan1k/items/93fd5450850054fd6122

https://qiita.com/mutchan1k/items/0084af949a9f1dd44e6b

この記事は簡単にまとめたものなので内容は薄いです。

準備(おさらい)

まずはdiscord側の準備をしていきましょう。

“`ruby:main.py
from discord.ext import commands
import traceback
import discord
cogs = [
‘cogs.cmd’
]

class MyBot(commands.Bot):

def __init__(self, command_prefix):
#親クラスにcommand_prefixを渡す
super().__init__(command_prefix)

#

元記事を表示

Pythonで特殊ディレクトリの絶対パスを取得する

# 結論はこれ
“`python
import os
os.popen(‘powershell -Command ([Environment])::GetFolderPath(“””MyVideos”””)’).read().rstrip(‘\n’)
“`
“MyVideos”の部分を変更で別の場所も取得できます
詳しくは以下のURLで

https://docs.microsoft.com/ja-jp/dotnet/api/system.environment.specialfolder?redirectedfrom=MSDN&view=net-6.0

# 経緯やはまった部分(何かの参考になれば)
PythonでGUIソフトを作っている際にファイルを保存する処理で、PicturesやVideosに保存したかったのですが、
“Python 特殊ディレクトリ”と調べても、パスを結合させて”C:” + “Users/user” + “Videos”という説明の記事しかなくて、しかもこの場合システムフォルダをDドライブなどの別のドライブやディレクトリに移動させていると対応できませんでし

元記事を表示

テスト投稿

#### 今後はpythonや機械学習に関する投稿します。
# テスト投稿
# タイトル
コメント
## サブタイトル
コメント
### サブサブタイトル
コメント

### 以下数式
$y = ax$\
$MSE = \displaystyle \frac{1}{N_{test}} \sum_{k=1}^{N_{test}} (y_{i}-\hat y_{i})^{2}$

元記事を表示

知識ゼロなのでとりあえずPythonをインストールしてみた

# 本題の前に
本題の前に、この記事について。
本題とは全く関係ないので無視してもらって構いません。

##### 筆者の知識レベル
まず、私はこれまでちゃんとプログラミングを学んだことがなく、プログラミングの「プ」の字もわからないような初心者中の初心者です。(「プログラミング?CとかjavaとかPythonとか名前は聞いたことあるよ?」ってレベル)

##### 勉強を始める動機
無限に時間があったらちょっと勉強してみたいとは思っていましたが、今回勉強をゼロから独学で始めるのは、とある理由でPythonの習得が必要になったからです。(理由が無ければ永遠に始めなかったと思うのでいい機会になりました。)
なんで記事を書くのかというと、メインは学習したことの備忘録ですが、私と同じようにゼロから始めようという人の役に1mmでも立てばということでもあります。

# Pythonってなんだ
Pythonを勉強するにあたってまず、そもそもPythonというプログラミング言語は何なのかという疑問にぶつかり調べてみると、細かい話はさておき、他の言語と比較して **「シンプルで可読性が高く、初心者でもと

元記事を表示

OTHERカテゴリの最新記事