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

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

Twitter 推し・神絵師・えっっな 画像保存[Tweepy]

#諸君よ(冒頭ポエム)

「Twitterで神絵師の画像を保存したい!!!」

僕らが空に叫んだあの日から何日が経っただろう。

神絵師をフォローし、タイムラインに流れてくる癒やしを眺めるのも良い。
そして、神絵師どうしのリプにひとつひとついいねを推していくのが我々の使命だ。

_人人人人人_
> しかし <
 ̄Y^Y^Y^Y^Y^ ̄

フォローしている神絵師の画像がワンクリックで大量に保存できたらどれほどいいだろうか?

僕らはなんのためにプログラミングをしている?

そう、神絵師の画像を保存するためだ。

※この人はつい先日、超超超超真面目にプログラミングについて語った記事を投稿したばかりです。

https://qiita.com/mio256/items/eb70d6d2239acc2ce94c

# 僕らの味方Python

この記事はPythonをある程度扱えることが前提に進んでいく、

もしPythonが初めてなら、ある程度学んでから戻ってきてほしい。

# 僕らの味方Twitter

冒頭でネタ記事と思われたかもしれないが、僕は本気だ。

さくっとTwitterDeve

元記事を表示

pythonにおけるシングルアローが検索に引っかからないので書きました

# pythonにおけるシングルアロー(->)とは
– pythonにおける`シングルアロー`(`->`)は、アノテーション(関数アノテーション)です。
– [この記事](https://techacademy.jp/magazine/46675)を見ただけですが、現時点で検索にひっかからなかったので、記事に書きました。
– 検索語としては、`python`、`シングルアロー`、とか、`アロー演算子`とかで検索する人(自分)が普通かなと思います。初めから、`->`を調べようとして、`python`、`アノテーション`って検索する人はあまりいないと思います。

# 関数アノテーション

– pythonでも型を意識したプログラミングをできるようにと、python3.6から`関数アノテーション`が利用できるようになりました。

“`
def 関数名(引数1, 引数2, …) -> “返り値の型名”:
処理内容
“`

– 関数アノテーションの説明については、有名サイトを参考にして下さい。
– [note.nkmk.me Pythonの関数アノテーション](https://n

元記事を表示

Pythonで文字認識ニューラルネットワーク構築【Coursera Machine Learning】(1.概要)

# はじめに
 ちょっと前に出た機械学習のゼミで[Courseraの教材](https://www.coursera.org/learn/machine-learning)を扱っていたので復習がてらアウトプットしていこうと思います。Week5の課題であるex4は、もともとはOctaveで書かれているので自己流Pythonで記述します。当然処理にかかる時間は長〜くなるので実用目的ではなく勉強目的の人に向けて書いてますのであしからず。

今回はまずどんな目的、方向でコードを書くのかという話をしていきます。
(全然関係ないですが名詞の「話」を「話し」って書かれると凄い気になります)

ソースコードを見たい方はこちら
[Github](https://github.com/Mkamono/Letter_identify/blob/master/letter_identify.py)

とりあえず動かしたい方はこちら
[Github](https://github.com/Mkamono/Letter_identify)
(よくわかんない方は「code」→「Download zip」でファイルご

元記事を表示

【Python】16進数を10進数に変えるプログラム!

 前回、以下のようなプログラムを作ったため、今回は16進数を10進数に変えるプログラムを作りました。

[整数→2進数](https://qiita.com/kim-shun/items/db4611e42d7ca7849124)
[整数→16進数](https://qiita.com/kim-shun/items/60af257ff54198dfcdbf)

“`python
def change_decimal(hexa):
nums = {‘0′:0,’1′:1,’2′:2,’3′:3,’4′:4,’5′:5,’6’:6,
‘7’:7,’8′:8,’9′:9,’A’:10,’B’:11,
‘C’:12,’D’:13,’E’:14,’F’:15}
n = len(hexa)
sum = 0
for i in range(n):
num = nums[hexa[i].upper()] * (16**(n – 1))
sum += num
n -=

元記事を表示

ソラで書く順序付き集合byスキップリスト

順序付き集合のシンプルな実装として,**スキップリスト**を紹介します.

※本記事の説明は[OpenDataStructures](https://sites.google.com/view/open-data-structures-ja/home)を参考にしています.厳密な計算量解析などの解説はそちらをご確認下さい.

実装はUnlisensedで公開しています.
https://github.com/MatsuTaku/sorted-set-python

# 順序付き集合

本記事における順序付き集合データ構造は,順序付き集合$S$に対する以下の操作をサポートする.
– $\texttt{find}(x)$: $S$に$x$が存在するなら$x$を,しないなら$\textrm{null}$を返す
– $\texttt{successor}(x)$: $S$の$x$以上の最小の値を返す
– $\texttt{predecessor}(x)$: $S$の$x$以下の最大の値を返す
– $\texttt{add}(x)$: $S$に$x$を追加する
– $\texttt{remove}

元記事を表示

PythonでgRPC+双方向通信+非同期をやってみた

## はじめに

gRPCもasyncioもよくわかってません。
Pythonのゲームループ内でどうやってネットワーク処理をするのだろうと考えて書きました。
Server側を非同期化する記事は良く見ますが、クライアント側はほとんど見ません。

動作したものは下記に置いてあります。
https://github.com/inunekousapon/grpctest

## 目的

PythonでgRPCを双方向通信させます。
ただし、通信は全て非同期で行うものとし、リクエストの順序は維持したいものとします。
今回はクライアントで入力した数字をサーバー側に送信すると、過去に送信した全ての数字を加算したものを返却するものを作成してみます。

## 動作したもの

![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105394/393fcec4-5f40-7473-e9ee-d7899accf219.gif)

## 環境

– Python 3.9.7
– Windows10 Pro

元記事を表示

【Sphinx】unittestを使った、IndexEntries.create_index()の振る舞いの確認

unittestを使った、IndexEntries.create_index()の振る舞いの確認。

テストデータとその結果から、Sphinxがどのようにソート処理をしているのかが見えてくる。

# 環境

– Windows10/cygwin64
– Python 3.8.10
– Sphinx 4.2.0

このテストの通るバージョンは索引データについては、4.2.0と互換性がることになる。

# unittest_IndexEntries.py

“`python
#!/usr/bin/python
import unittest
from sphinx.environment.adapters.indexentries import IndexEntries

#正規表現による字句解析
testcase1 = [
{ #テストパターン
‘doc3’: [
(‘single’,’あああ’,’id-311′,”,None),
(‘single’,’ううう’,’id-313′,’main’,None),
(‘singl

元記事を表示

Python初心者はWordCloudをやってみたい1

#始めたきっかけ
pythonの勉強をしたくて、基礎的な勉強をしていたけどつまらない!基礎は必要だけどやっぱり何かを作らないと成長してるという実感が湧かず、pythonで出来る事を探していたらこんな記事を見つけた。
[米津玄師の歌詞をWordCloudで可視化してみた。](https://qiita.com/Senple/items/1ad08b1a7ac9560bef62)
なんだこれ、めちゃくちゃ面白そう!と思い、これをやってみる。

いきなり全部をやろうとすると、どこかで躓いて辞めそうだから初学者は黙って一歩ずつやってく。
初めは形態素解析についてを勉強し、その後にWordCloudをやっていくつもり。

最終目標は、入力で好きなアーティストの歌詞でできるようにしたい。
技術云々の前に、そもそもそんなことできないよ〜って言われたら言われたでしょうがないけど、とりあえずやるだけやってみる。

#環境
Google Colaboratory

※初めてGoogle Colaboratoryを使う方は、こちらを参考にマウントしてみてください。
[Google Colaboratoryで

元記事を表示

Flaskでバックグラウンド実行

[PythonでThreadを使うflaskサンプルを作ってみた \- Qiita](https://qiita.com/juri-t/items/5cec3822e168215aff49)
の練習とブラウザで操作できるようにstart,stopボタンをつけてみた。

uwsgiなどで並列プロセス化するとjobs変数共有できないので、別途ジョブキューのceleryなどを使ったプロセス作る必要がある。

“`py:app.py
from datetime import datetime
from flask import Flask, make_response
from time import sleep
import threading

app = Flask(__name__)

class MyThread(threading.Thread):
def __init__(self):
super(MyThread, self).__init__()
self.stop_event = threading.Event()

元記事を表示

【Python】unittestサンプル

次の “`sphinx_ja_term.py“` で定義されている “`HTMLTextNode“` クラスのユニットテスト。サンプルとして使えます。

– [【Sphinx拡張】sphinx_ja_term.py](https://qiita.com/koKekkoh/items/7e56228276fd092f3c8e)

#test_sphinx_ja_term.py

– 後で差し替えますが、2021-09-18現在の “sphinx_ja_term.py“` は、次のテストケースをパスしていません。過去の未修正版は編集履歴から取れると思います。

“`python
#!/usr/bin/python
import unittest
from sphinx_ja_term import HTMLTextNode

#正規表現による字句解析
testcase1 = [
[ #テストパターン
“よみ1|用語1”,
“よみ2|用語2^120a3”,
“よみ3|用語3^”,
“よみ4|用語4^10a3あいうえお”,
“よみ5|用

元記事を表示

かの有名なFrog問題に奮闘する

#Topic
– 前の記事に引き続き,お世話になっている「問題解決能力を鍛える!アルゴリズムとデータ構造」関連の話.
– Frog問題(AtCoder Educational DP Contest A – Frog 1)の別解を考えたい

## 別解??
Frog問題は,[AtCoder Educational DP Contest A – Frog 1](https://atcoder.jp/contests/dp/tasks/dp_a)を参考されたい.
ここでは,自分の考え方を記述しておく.(実装はまだできていない)

“`Python
#xはコスト,iは段数
func(x,i):
if i == n-1: return
func(x + abs(h[i+1] – h[i]), i+1)
func(x + abs(h[i+2] – h[i]), i+2)

#初期値は0で,段数は0段目から始まるからx,iに0を代入
func(0,0)
“`

実現したいこととしては,再帰で0段目からN段目までのコストを全て計算させること.
ただ,分かってもらえるとおりこ

元記事を表示

ABC186 C – Unlucky 7 から学んだ

https://atcoder.jp/contests/abc186/tasks/abc186_c

![abc186_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/1aa4645a-7d77-3cd8-74c9-d1d032c8aa8f.png)

![abc186_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/562e5007-caa6-ea2e-c73b-dee93a12f9fb.png)

とりあえず、8 進数への変換は基本文字列。
10 進数も文字列へ統一した方が楽そうだ。

こんな記述でも通った。

“`Unlucky.py
N = int(input())
lis = []
for n in range(1,N+1):
if “7” in str(n) or “7” in oct(n):
lis.append(str(n))
print(N-le

元記事を表示

ABC194 C – Squared Error から学んだ

https://atcoder.jp/contests/abc194/tasks/abc194_c

![abc194_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/55166834-cb3a-f1c8-ba7f-7aae40174cf6.png)

ふむふむ。サンプルを見てみよう

![abc194_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/93858539-9905-7a53-b3c0-105cbbaf97cc.png)

うーん。シグマ使ってるけど、結局、
A の要素の組み合わせで差 => 二乗 で良くね?

だがしかし、WA

“`SquaredError_r0.py
N = int(input())
A = list(map(int,input().split()))

#辞書で要素をリスト
dic = {}
for i in range(N):
if A[

元記事を表示

Seabornってすごいのよ!

# はじめに
僕は理系大学生として日々Pythonで遊んだり苦戦してたりしてます.
そのなかでmatplotlibを使うことがよくあるのですが少しめんどくさい(できることが多すぎて手間が多い)と感じます.
なので今回はもっと手軽に使えておしゃれにプロットできる個人的最強ライブラリ”Seaborn”についてです.

# Seabornとは
Seabornとは簡単に言うと`Pythonで使えて簡単にそれっぽく見せられるグラフ描画ライブラリ`です
僕も詳しくその概要を説明できるわけではないですが,Seabornはmatplotlibの機能を利用しています.そのためグラフの調整や大まかなルールはmatplotlibと一緒です.

# インストール方法

“`
!pip install seaborn
“`
※seabornをインストールする際”numpy”,”matplotlib”,”pandas”他も同時にインストールします.すでにインストールしている場合,バージョンの違いなどによって実行時エラーが発生する可能性があります(僕はそのエラーが何かわからず1時間ネットの海をさまよった)のでよ

元記事を表示

文章を非可逆圧縮するという世紀の大発見!という夢の跡

# 全文を圧縮した前文

長文なのではじめに結論を置いときますが、最高に頭のネジが飛んでいるポエム(当社比)ができました。
最初と最後だけでも流し読みしていただけると嬉しいです。

結論から言うと文章を非可逆圧縮、冗長展開するとこうなります。

+ **原文:** ディレクトリAの内容を親ディレクトリに移動する
+ **非可逆圧縮:** 名鑑aの刃を親名鑑に動為す
+ **冗長展開:** メモリー(普通ハードディスク)に保存されているファイルのリストローマ字の最初の文字の感じ取ったこと、発見したこと、あるいは学習したことの全体あるいは範囲を子どもを生み出す、出産する、子供を養育して、あるいは育てる人メモリー(普通ハードディスク)に保存されているファイルのリストに新しい位置または場所に動かす、あるいは移動させる、具体的および抽象的な意味でも考慮、判断または使用のために提案する

# 画像や音声が非可逆圧縮できるのに文章ができない訳がない

画像を`JPEG`で保存すると、無圧縮の`BMP`よりサイズが小さくなるじゃないですか。
勘違いを恐れずに詳細を省いて説明を圧縮すると、`JPEG`の

元記事を表示

PythonのSympyを使って中国剰余定理(CRT)を解く

### 中国剰余定理

[中国の剰余定理](https://ja.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E3%81%AE%E5%89%B0%E4%BD%99%E5%AE%9A%E7%90%86)はこのWikiにもあるように以下のような定理のことです。

> $k$個の整数$m_1,m_2,…,m_k$が互いに素ならば、任意に与えられる整数$a_1,a_2,…,a_k$に対して
> $x\equiv a_1\ (mod\ m_1)$
> $x\equiv a_2\ (mod\ m_2)$
> …
> $x\equiv a_k\ (mod\ m_k)$
> を満たす整数 x が $m_1*m_2*…*m_k$ を法として一意的に存在する。

### 例題 1.

7で割った余りが5かつ、11で割った余りが2となる整数を求めよ。
これは以下の式で$x$を求めることになります。

> $\large x\equiv 5\ (mod\ 7)$
> $\large x\equiv 2\ (mod\ 11)$

これを[sympyのcr

元記事を表示

取得したツイートをCSVファイルに記録する

#環境・バージョン
OS:Windows10
言語:python 3..8.3
パッケージ:tweepy3.9.0, pndas1.0.5
#はじめに
 前回の記事でツイートを取得する方法を紹介したので、今回はそれをcsvファイルとして記録する方法についてまとめます。ファイルへの書き込み/読み込みをするだけなら標準ライブラリのcsvモジュールを使ってもできますが、応用することを考えてpandasパッケージを利用します。予めインストールしておいてください。

“`
pip install pandas
“`
 参考:[pandas公式ドキュメント](https://pandas.pydata.org/docs/reference/index.html)

#csvとは
 csv(Comma Separated Value)とは、「テキストデータをカンマで区切ったデータ形式」です。例えば、以下はcsvファイルです。

“`a.csv
1,あ
hoge,23
“`

#csvファイルへの書き込み
 csvファイルへの書き込みは以下の手順でできます。
1. データフレームの作成
2.

元記事を表示

tweepyの主な使い方(ツイートする・ツイートを取得する)

#環境・バージョン
OS:Windows10
言語:python 3..8.3
パッケージ:tweepy3.9.0
#はじめに
 pythonでTwitterAPIを利用するためのパッケージtweepyの主な使い方についてまとめました。
 参考:[tweepyドキュメント](http://docs.tweepy.org/en/latest/api.html)
#事前準備
1 tweepyをインストールする。

“`
pip install tweepy
“`
2 [Twitter開発者ページ](https://developer.twitter.com/en/apps)からAPI key、API key secret、Access token、Access token secretを入手する。
※開発者ページに入るには申請が必要です。
#OAuth認証
 Twitterアプリ外からTwitterを利用するためのAPI(Apprication programming interface)ですが、当然誰でも利用できるわけがありません。アクセスを認可するための仕組みが存在し、OAuth(

元記事を表示

機械学習初学者が機械学習本を輪読会で勉強したいなら

## 概要

最近機械学習の輪読会を開く機会があったため、今回以下の内容をまとめることにしました。

– 機械学習初学者の勉強方法
– おすすめ輪読本
– おすすめ輪読方法

ですので、

– 機械学習の勉強を輪読会で行いたい
– 機会学習初学者である

という方に向けた内容となっております。

私自身は記事を書いた時点で機械学習エンジニア2年目で、機械学習の勉強自体は4年目くらいになります。
ですので私もまだまだある意味で初学者で、こういった記事を書くのは恐縮なのですが、もし「この本がいいよ!」とか「こういったやり方はどう?」など何かご意見ありましたらお気軽にコメントいただけたら嬉しいです。

## 機械学習の始め方

それではまず機械学習初学者の勉強方法についてですが、実はこちらに以前ロードマップをまとめています。
https://note.com/kotabrog/n/n6ca9ff6f52f2

## おすすめ輪読本と輪読方法

ということで、さっそく輪読会についての話に入りたいと思います。

### 輪読会とは?

そもそも輪読会には以下のような意味があります。

>人々が

元記事を表示

【Django】ユーザーモデルAbstractBaseUserの実装(Twitterっぽく)

##ユーザーモデルの種類

* User(標準モデル)
* AbstractUser
* AbstractBaseUser(オススメ)

##各モデルの違い

####標準モデル(難易度低)
 簡単だが応用が効かない。

“`models.py
from django.contrib.auth.models import User
“`

####AbstractUser(難易度中)
 フィールドのカスタマイズ(**追加・変更**)ができる。

“`models.py
from django.contrib.auth.models import AbstractUser
“`

####AbstractBaseUser(難易度高)
 フィールドのカスタマイズ(**追加・変更・削除**)ができる。

“`models.py
from django.contrib.auth.models import AbstractBaseUser
“`

####公式推奨
 後でユーザーモデルを変更するのは、超大変なので最初からAbstractBaseUserを使うのがオススメだそうです。

元記事を表示

OTHERカテゴリの最新記事