Python関連のことを調べてみた2021年01月24日

Python関連のことを調べてみた2021年01月24日

[Python]ループ実行時間の目安

# 条件
以下の二重ループを [AtCoder](https://atcoder.jp) のコードテストで各条件 3 回ずつ実行し、実行時間 (ms) の中央値を記録した。
試行した時間帯は日曜 AM 9 時ごろ。

“`python
count = 0
for i in range(n):
for j in range(m):
count += 1
print(count)
“`

# 実行結果
ネストに関わらず、実行時間はほぼループ回数に依存するとみて良い。

## Python 3.8.2
|m \ n |$10^0$|$10^1$|$10^2$|$10^3$|$10^4$|$10^5$|$10^6$|$10^7$|$10^8$|
|–:|–:|–:|–:|–:|–:|–:|–:|–:|–:|
|$10^0$|| | ||||107|801|7613|
|$10^1$|| | |||110|768|7605|TLE|
|$10^2$|||||108|829|7599|TLE|TLE
|$10^3$||||102|785|7858|TLE|TLE|

元記事を表示

Python Tweepyを使っていいねを自動化

# Python Tweepyを使っていいねを自動化

## 注意事項

いいねには回数制限があります
噂だと以下の回数なのでAPI実行には注意してください

1分間に30回いいね→3日間規制
1時間に200回いいね→1時間規制
1日に400回いいね→24時間規制

## いいねの処理

検索のPythonスクリプトは[こちら](https://qiita.com/morita-toyscreation/items/2abc084f73a9593db26c)を参照

[キーワード検索](https://qiita.com/morita-toyscreation/items/2abc084f73a9593db26c#%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89%E6%A4%9C%E7%B4%A2)した結果をループしてTweetIDを指定して`create_favorite`を実行することでいいねが実行される

“`Python
api.create_favorite(id=row.tweet_id)
“`

**ポイント**
継続的にいい

元記事を表示

エポックとバッチ

エポックとバッチ

ニューラルネットワークの学習に大事な、エポックとバッチの概念

●エポックとバッチ
全ての訓練データを1回学習することを、1エポック(epoch)と数えます。
1エポックで、学習データを全て使い切ることになります。
実は、訓練データのサンプル(入力と正解のペア)は複数まとめて学習に使うのですが、このサンプルのかたまりのことをバッチ(batch)といいます。
1エポックで使用する訓練データは、複数のバッチに分割されることになります。
訓練データとバッチの関係を以下の図に示します。

●バッチ学習
バッチ学習においては、バッチサイズが全訓練データの数になります。
1エポックごとに全訓練データの誤差の平均を求め、重みとバイアスを更新します。
一般的に学習は安定しており、他の2つの学習タイプと比較して高速ですが、局所最適解に囚われやすいのが欠点です。
バッチ学習における誤差は、訓練データ数をN、個々のデータの誤差をEiとして以下のように定義されます。

“`math
E=1N∑i=1NEi
“`

また、重みの勾配は次のようにして求めることができます。

“`m

元記事を表示

教師なし学習 ~入門者のメモ~ (scikit-learn)

## 本記事の内容

「[東京大学のデータサイエンティスト育成講座](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88%E8%82%B2%E6%88%90%E8%AC%9B%E5%BA%A7-Python%E3%81%A7%E6%89%8B%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%E3%83%87%E2%80%95%E3%82%BF%E5%88%86%E6%9E%90-%E5%A1%9A%E6%9C%AC%E9%82%A6%E5%B0%8A/dp/4839965250/)」を読んで、Chapter 9 機械学習の基礎(教師なし学習)のメモ。

## scikit learn の機械学習モデル全体像
[チートシート](

元記事を表示

活性化関数

ステップ関数

“`
import numpy as np
import matplotlib.pyplot as plt

def step_function(x):
return np.where(x<=0,0,1) x = np.linspace(-5,5) y = step_function(x) print(x,y) #plt.plot(x,y) plt.show() ``` ```出力 [-5. -4.79591837 -4.59183673 -4.3877551 -4.18367347 -3.97959184 -3.7755102 -3.57142857 -3.36734694 -3.16326531 -2.95918367 -2.75510204 -2.55102041 -2.34693878 -2.14285714 -1.93877551 -1.73469388 -1.53061224 -1.32653061 -1.12244898 -0.91836735 -0.71428571 -0.51020408 -0.

元記事を表示

Discord.pyでカスタムPrefix ~改~【初心者向け】

# 最初に

前回にも同じような記事([Custom prefix を導入しよう!!](https://qiita.com/Req_/items/f64def8e057739ef15a3))を書きましたが、こちらの記事で紹介しているコードだと Github + Heroku で動かしているBotには対応していないので、その動かし方でもちゃんと動くように改良しました。
※ それ以外のところも多少改良されています

# 開発環境
> OS – Windows10 home
エディタ – Atom 1.54.0
実行シェル – コマンドプロンプト
Python – 3.9.1
PIP – 20.3.3
discord.py – 1.6.0

# 本題

## コード

※ 基本的にどのコードでも同じ書き方になるものは `テンプレ` とコメントが打ってあります
※ `テンプレ` 部分の解説は省略させていただきます

コードは長いのでこの表示方法をとらせていただきます

“`py
# テンプレ
import discord
fr

元記事を表示

Windows 10 on ARM における OpenGL に関するあれこれ

## OpenGL のライブラリがない…
現在提供されている Windows SDK (執筆時点では10.0.19041.0) には ARM64 用の OpenGL 関係のライブラリが収録されていません。

![gl-lib_cut.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/680157/9fb26759-a618-4fa5-0bf2-f323c9a7b72b.png)

これにはいろいろと理由が推測されてますが、大ざっぱなところは

– デスクトップ向け OpenGL だとパフォーマンスが出ない説
(Snapdragon はモバイルチップなので、GPU が OpenGL ES 向けに最適化されていると言う推測)
– Windows は DirectX が標準なんだから、それを強制すればいいじゃん説
(いわゆる Apple 的なあれですねw)
– Microsoft や Qualcomm の開発リソースが不足している説
(まあ、売れてないから優先度が下がるのは仕方ないよねぇ…?)

とい

元記事を表示

整数型で高次方程式を解く=プチスーパコンピューター=

今回のタイトルは「整数型で高次方程式を解く=分散並列処理=」の予定でしたが変更しました。内容は同じです。話は変わりますがRaspberry Pi 4Bは1.5GHzで動作していますから多分1,800MIPS/core以上の処理能力があるはずです。GILがありインタープリターのRaspberry P iのPythonでも17MB/sのTCP送受信ができます。MIPSというのは最近あまり使わないのでマイナーですがアセンブラではよく見かけます。一方、シリアル通信は29Kbps、57Kbps、115Kbpsの速度です。Windowsはターミナルが消えましたが、今でもダメな時はまずシリアルです。そしてLANの速度は普通で1Gbpsです。ただTCP/IP、USB2以上、さらにSDカードはアセンブラのライブラリーは見たことがありません。特にTCP/IPスタックは膨大です。また出だしから脱線しましたが、今回の主題は、複数台を使う分散処理により、整数型で高次方程式を解くプログラムです。

100次、1000次の高次方程式では1台の4core並列処理だけでは長時間かかります。そこで2台で分散処理すれば計算

元記事を表示

サブ配列の最大値抽出(最大部分配列)

###趣旨
以前、転職活動のコーディングテストで
最大部分配列をreturnで返す問題を出題されたため
pythonで書いてみました。

“`python:python
def maxSubArray(self, nums: List[int]) -> int:
dp = [0 for _ in range(len(nums))]
dp[0] = nums[0]
for i in range(1, len(nums)):
dp[i] = max(dp[i-1]+nums[i], nums[i])
return max(dp)
“`

元記事を表示

スクレイピングで物件探し!その2

# はじめに

[前回の記事](https://qiita.com/virusyun/items/bf784998d806a2c4634d)の続きです。

前回の記事で一応物件探しと、移動距離を出すことはできたのですが、物件情報を1行ずつ書き出すように書いていたので、実行時間が長いという問題点がありました。
そこで、サイト内の情報を丸ごと取ってくることで以前より高速にしました。
また、前回は次のページへ移動する機能がついてなかったので追加しました。

# 前提

## 環境

Windows 10 バージョン 20H2
Python 3.7.4
jupyter notebook

## 必要なライブラリ

“`python
pip install beautifulsoup4
pip install selenium
pip install openpyxl
pip install xlwt
“`

## Chrome driver のダウンロード

chromeでスクレイピングするために必要になります。
「Chrome driver ダウンロード」で検索すると出てきます。
自身の

元記事を表示

平面上におけるポテンシャルデータの補間

#1.はじめに
 平面地図上における標高マップの様に、二つの独立関数x, yに従属変数zが測定されるケースを考える。データの取得作業を最小限にし、補間することで情報量を確保したい。[scipy.interpolate.Rbf](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.Rbf.html)による補間をfanctionを変え実施し、結果を比較する。今回は、平板のポテンシャルデータ(歪み変形量)を離散的に測定し、測定間を補間していく。

#2.データ
 測定した平板の歪変形データを散布図化する。![scatter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/781118/74caf989-0dc5-30a2-3bac-c5cfd31b455c.png)

#3.scipy.interpolate.Rbf 補間
 測定したデータに対し、scipy.interpolate.Rbfを用い、測定値を補間していく。fa

元記事を表示

trax: focuses on clear code and speed 深層学習ライブラリ試用 (書き換え中)

#きっかけ

Tensor2Tensor後継のtrax深層学習ライブラリ試用。メモ。

**trax**:Trax is an end-to-end library for deep learning that focuses on clear code and speed. It is actively used and maintained in the Google Brain team.
https://github.com/google/trax
https://trax-ml.readthedocs.io/en/latest/#
 ・tensorflowより簡単に
 ・Tensor2Tensorより簡単に
 ・Pytorchより簡潔に
 ・kerasより高機能かつ簡潔に(transformer実装可能)
 ・論文のアルゴリズム表記(擬似コード)と同じような書式で実装可能とのこと(他ライブラリのように過去の遺産を記述する必要がない)
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

AtCoder Beginner Contest 189 参戦記

# AtCoder Beginner Contest 189 参戦記

終了50秒前に書けたE問題を投げたら奇跡的に一発 AC が出て久々に大勝利!

## [ABC189A – Slot](https://atcoder.jp/contests/abc189/tasks/abc189_a)

1分半で突破. 書くだけ.

“`python
S = input()

if S[0] == S[1] and S[1] == S[2]:
print(‘Won’)
else:
print(‘Lost’)
“`

## [ABC189B – Alcoholic](https://atcoder.jp/contests/abc189/tasks/abc189_b)

3分で突破. double でやるのは嫌な予感がしたので、思考停止で Decimal で. 30秒考えれば100倍すればいいじゃんと気づいただろうに(笑).

“`python
from decimal import Decimal

N, X = map(int, input().split())

c =

元記事を表示

【パターン認識】k-means clustering

# はじめに

突然ですが、パターン認識についていろいろ書いていこうと思います。

### 用語について

パターン認識という言葉を使います。いろいろな流派?があり、機械学習、人工知能などいろいろありますが、ここではパターン認識として考えます。それぞれ、突っ込みどころのある用語ですが、まぁそれはおいておいて。

## 流れ

パターン認識の全てについてですが、モデルを用いて行いことをします。

モデルを用意します。モデルのパラメータを求める必要があります。これを「学習」と呼びます。

モデルを用いて、観測が何であるかを推定します。

# K-means algorithm

たくさんのデータがあり、それらが分類されていたとします。
新しく入ってきたデータが、それまでに分類されていたどのクラスに属するかを考える、というタスクを考えます。

そうすると、学習として求めたいモデルは各クラスの代表値、認識は観測値が属するクラスを求める、ことに当たります。

使い方として、

– たくさんのサンプルを分類する(クラスタリング)
– 分類したクラスタをもとに、新しいサンプルがどのクラスタに属する

元記事を表示

学習型じゃんけん (Python)

# はじめに
– Python を少し囓った素人が、「学習型じゃんけん」を作ってみました。
– 学習型といっても、強化学習とかではありません。単純な統計です。
– 「こう書いた方がスマートだ」など、突っ込み大歓迎です。

#### 環境
– Jupyter Notebook 6.1.4
– Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]

# アルゴリズム
– 人間は、単純な選択を短時間に繰り返したときに、無意識に癖が出ます。
– 直近4回の手の並びの出現頻度を記録して、直近3回の並びから最も頻度の高い次の手を予測とします。
– 最初に出現履歴と頻度表を適当な乱数で埋めてあります。

# 使い方
– 人間が手を入力する前に、プログラムは手の内を見せます。
– 人間側の手を`1`~`3`の数字で入力します。
– 機械側の手を見ずに入力するとフェアです。
– 見たくない場合は、`print`の行を入力後に移動してください。
– `0`を入力するとゲームを終了し

元記事を表示

Lambda(Python)でDynamo DBに接続しようとした際に”Unable to marshal response: Object of type SSLError is not JSON serializable”が出た件について

下記の記事を参考にして、Amplifyプロジェクト内にDynamo DBに接続するLambda関数を実装していたところ、タイトルにあるエラーが出ました。

[AWS API GatewayとLambdaでDynamoDB操作](https://business.ntt-east.co.jp/content/cloudsolution/column-try-20.html#section-03)

この記事では、その対処方法を備忘録代わりに記載します。

# 環境

– Windows10 20H2
– WSL2 – Ubuntu-20.04
– Amplify CLI 4.41.0
– Python 3.8.5
– pipenv 2020.11.15

# 症状
冒頭の記事を参考にして、一部を書き換えながら試していたとき、タイムアウトのエラーが起こりました。

“`
START RequestId: 04359089-637f-48f3-aa2b-e7649c53e4d1 Version: $LATEST
{‘OperationType’: ‘SCAN’}
END RequestI

元記事を表示

BeautifulSoup,Selenium備忘録

##はじめに##

スクレイピングの基本操作を備忘録用として投稿します。

##対象ページ、クラスのスクレイピング

“`ruby:qiita.rb

import sys
from selenium import webdriver
import os
from bs4 import BeautifulSoup

options = webdriver.ChromeOptions()
options.add_argument(‘–headless’)
options.add_argument(‘–no-sandbox’)
options.add_argument(‘–disable-dev-shm-usage’)
browser = webdriver.Chrome(‘chromedriver’,options=options)
# 対象のWebページURLを宣言します
url = “https://qiita.com/”
# 対象URLを取得
browser.get(url)
html = browser.page_source.encode(‘utf-8’)
s

元記事を表示

Djangoをとりあえず動かす ~pythonインストールからstartprojectまで~

# どんな記事?
– Djangoの環境構築手順書を毎回忘れるので、自分用メモとして作成。
– 環境構築が完了した状態から遡って手順を確認したので、抜け漏れがあるかも。

# 環境構築手順
## python インストール
何はともあれpythonのインストール。
(参照|https://www.python.jp/install/windows/install.html)

今回はubuntsu経由?でインストールしたので、下コマンドを実行。
“`sudo apt-get install python3
“`

## pip インストール
pipのインストール。
(参照|https://qiita.com/suzuki_y/items/3261ffa9b67410803443)

ubuntsuでpipをインストールする前には、ubuntsuの付属パッケージ?の更新をしておいた方が良いらしい。
“`sudo apt-get update“`

pipインストールは以下。
“`sudo apt-get install python3-pip“`

## 仮想環境構築
必須

元記事を表示

Python で保存する Excel ファイルのハッシュ値を固定する

_(結論だけ知りたい方は「解決方法」のセクションまでお進みください)_

## はじめに

Excel ファイルは、表形式の情報を整理する用途では(特に「テキストファイル」に馴染みのない方たちにとっては)もっとも親しまれている形式です。

いっぽうで各種プログラミング言語から読み書きするためのライブラリも存在しており、こと「非エンジニアに情報を提示する」という目的に絞れば、Excel ファイルで出力するのは悪い選択肢ではありません。

ところが、そのファイルを Git 管理しようとするとさぁ大変。中身が全く同じでも、バイナリレベルでは異なる Excel ファイルが生成されてしまうことがあるのです。おかげで「何も変更していないのにコンフリクトした!」という事象が多々発生します。

分かっています、Excel ファイルを Git 管理しようとするのが正気の沙汰ではないことくらい。でもそういう案件があったんですよ。本当に。そのときに学んだことを供養させてください。

## 素朴に書き出すと何が問題か

ここでは Python 3 で `openpyxl`(記事執筆時点で 3.0.6 が最新)

元記事を表示

【合格体験記】Pythonエンジニア認定基礎試験(2021/01/23)

#合格しました!
1/10に受けた基本情報はおそらく合格しました。
しかし、選択したPythonでひどい正答率をたたき出してしまいました(泣)
悔しかったのでPythonエンジニア認定基礎試験を受験し、無事雪辱を果たしました^^
この記事では、Pythonエンジニア認定基礎試験の**申込方法・勉強法・所感**を紹介します。

#筆者のバックグラウンド
文系大学出身の20卒です。都内のIT企業で働いています。

◆業務経歴
 4月    主にPython初級レベルの新人研修を受ける
 5月    部署でJava研修を受ける
 6月~   環境移行・オープン化案件でテストや運用監視業務を担当

入社前や新人研修でPythonの基礎を学び、簡単な関数を組めるレベルになりました。
しかし昨年5月でPythonの勉強を中断したため、年末にはPythonの書き方を大方忘れてしまっている状態でした。
一方、Pythonの勉強を中断している間にJavaを勉強し、JavaSilverの資格を取得しました。
つまり資格勉強開始時には、**Python初心者・Java中級者**程度のプログラミングスキルでし

元記事を表示

OTHERカテゴリの最新記事