Python3関連のことを調べてみた2020年04月30日

Python3関連のことを調べてみた2020年04月30日

ax+by=1を満たす整数の組。

第58回数学オリンピックの問6では、伝統とも言うべき初等整数論の問題が出題されました。

その問題では「互いに素な整数a,bに対しax+by=1を満たす整数x,yが存在する」という事実が常識中の常識として使われます。
ここではその常識中の常識をpythonで実装してみた結果を報告致します。

“`ruby:
print(“互いに素な正の整数を2つ入力して下さい。”)
a, b= map(int, input().split())
n = 1
r = a**n % b
#print(r)
while r > 1:
n = n + 1
r = a**n % b
#print(r)
m = a**n // b
print(str(a)+”x+”+str(b)+”y=1を満たす整数xとyは”+str(a**(n-1))+”と”+str(-m)+”です。”)
“`

理屈自体は、以前紹介したオイラーの定理です。
https://qiita.com/naoya_suzuki/items/5490a1099dee8ad7065e

試しにa=6,b=11としてみると「6x

元記事を表示

言語処理100本ノック 2020をやった 第3章

# はじめに
満を持して[言語処理100本ノック 2020](https://nlp100.github.io/ja/)が公開されたので早速やってみます。

第3章ではWikipediaの記事から正規表現で必要な情報を抽出・整形します。

Wikipediaのマークアップ情報は[Help:早見表 – Wikipedia](https://ja.wikipedia.org/wiki/Help:%E6%97%A9%E8%A6%8B%E8%A1%A8)、API情報は[API:画像の情報 – MediaWiki](https://www.mediawiki.org/wiki/API:Imageinfo/ja)に書いてあります。が、マークアップ情報は情報が不完全なのでデータを見たり、[Wikipediaのページ](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%82%AE%E3%83%AA%E3%82%B9)をみてパターンを洗い出す必要があります。

# 第3章: 正規表現
Wikipediaの記事を以下のフォーマットで書き出したファイルjawiki-cou

元記事を表示

Pythonで好きな文章をUTF-8からShift-JIS(cp932)にエンコードする文字化けジェネレーターを作ってみた

どうもみなさんこんにちは。
最近暑くなってきましたね、わたしもとても暑いです。
そんな暑い時に私は訳のわからないソフトを作っているのですが、そんなソフトの理解も兼ねて今回は解説していきたいと思います。

#使用している機種
パソコンは東芝の「dynabook R734」という機種です。

– CPU: i5 4310M
– メモリ DDR3L 4GB 2枚 = 8GB
– GPU オンボード(Intel HD Graphics 4600)
– ストレージ LITEON製250GBくらい(Winに170GB, Ubuntuに80GB割り当ててます)
– OS Ubuntu 20.04 LTS and Windows 10 1909

スペックはそこまで高いわけではありませんが、全然快適ですしSSDの恩恵もあって起動も滅茶早いです。

#使用している環境
– Visua Studio Code
– Python 3.6.5
– 使用ライブラリ
– jaconv
– tkinter

前はAtomを使っていましたがなんとなくVS Codeに変えたらめっちゃ使いやすかったです。
#コー

元記事を表示

Pythonでスクレイピングしたデータを既存のExcelシートに追加したい。

Python3でスクレイピングした結果をリスト化し、Pandas.DataFrameを利用して新規のExcelシートに保存することはできるのですが(添付イメージを参照してください。)、既存のExcelのシートに新しい結果を空白行に追加していく方法はございますでしょうか?
既存シートの列見出しは添付イメージのColumnの通りです。![イメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/611808/0acdbf8c-b3a8-5be5-5e10-d4c23e3045fa.png)

元記事を表示

都道府県名を都道府県コードに変換

都道府県名を次で定義されている都道府県コードに変換する方法です。
[都道府県コード](http://nlftp.mlit.go.jp/ksj/gml/codelist/PrefCd.html)

変換に使うJSONファイル

“`json:prefecture.json
{
“北海道”: 1,
“青森県”: 2,
“岩手県”: 3,
“宮城県”: 4,
“秋田県”: 5,
“山形県”: 6,
“福島県”: 7,
“茨城県”: 8,
“栃木県”: 9,
“群馬県”: 10,
“埼玉県”: 11,
“千葉県”: 12,
“東京都”: 13,
“神奈川県”: 14,
“新潟県”: 15,
“富山県”: 16,
“石川県”: 17,
“福井県”: 18,
“山梨県”: 19,
“長野県”: 20,
“岐阜県”: 21,
“静岡県”: 22,
“愛知県”: 23,
“三重県”: 24,
“滋賀県”: 25,
“京都府”: 26,
“大阪府”: 27,
“兵庫県”: 28,
“奈良

元記事を表示

GRUで日経平均の10日後を予測した結果、それの整合性があまりとれていないような気がする…

【背景】
学生時代に機械学習をやっていました。
今自粛中でやる事もないので、再度機械学習を勉強しようととりあえずやってみてるところです。
漠然とやっても仕方がないので、日経平均を予測してみました。

———————————-
【本編】
RNN(GRU)を用いて日経平均の予測をしてみました。(参考URLをほぼ引用して作成)
結果のグラフでは未来の予測値が急上昇してしまいます。
恐らく間違っていると思うのですが、どこが間違っているのかわかりません。
間違っている部分があればご指摘いただきたいです。

【参考URL】
[ディープラーニングで日経平均株価を予測 その2(RNN)](https://qiita.com/shibata0523/items/4912c442c95fc22bc8b7)

【アルゴリズムの概要】
学習モデル
過去700~101日分を訓練用データ
過去100~51日分を検証用データ
過去50~0日分をテスト用データ

50日間を学習データとして学習する部分を特徴量としてx
当日の教師データをyとする。

※参考URLとは少しデ

元記事を表示

今日からはじめるPython機械学習プログラミング基礎 教師あり学習その2

前回記事、[今日からはじめるPython機械学習プログラミング基礎 教師あり学習その1 ](https://qiita.com/holy0516/items/d3057f711cd251e7a2bc) に引き続き、教師あり学習です。今回は様々な決定木のモデルで分類問題を解きます。

##データセットの読み込み
Kaggleのタイタニック号から生存者のデータセットを使います。前回と異なりデータは直接ダウンロードする必要があるので注意しましょう。下記は作業ディレクトリの直下にデータを置いた場合のコードです。

“`.py
#モジュールのインポート
import pandas as pd
from sklearn.model_selection import GridSearchCV

#ファイルの読み込み
train = pd.read_csv(“train.csv”)
test = pd.read_csv(“test.csv”)
train.head()
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

“pip install”実行時のプロキシエラー

仕事場のPC(Windows10)にて、pipライブラリアップグレード時発生したエラー・解決方法について共有します。
インターネットへアクセスする時に発生するようです。

# 環境
– Windows 10 Pro 1903
– Python 3.8.0
– pip 19.2.3

# 経緯
仕事場のPCにて、pipライブラリのアップグレードしようとしましたが、以下のエラーが出てアップグレードが出来ませんでした。

“`
$ python -m pip install –upgrade pip
ERROR: Exception:
Traceback (most recent call last):
File “C:\Users\yuya_sato\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\cli\base_command.py”, line 188, in main
status = self.run(options, args)
File “C:\Users\yuy

元記事を表示

DjangoのURL設定

# はじめに

ここでは、djangoのURLに関する設定について解説していきます。

# プロジェクトのurls.pyの設定

まず、プロジェクトディレクトリ下の`urls.py`を以下のように編集します。

“`python:プロジェクト名/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(”, include(‘アプリケーション名.urls’)),
]
“`

`admin/`となっているところは、管理画面へのURLを示しています。
その他のページについては、アプリケーションディレクトリ下の`urls.py`に記載するという意味で、`include`を使っています。

# アプリケーションのurls.pyの設定

アプリケーションディレクトリ下にも`urls.py`を作成します。
基本的には、`path(URL, view関数(またはクラ

元記事を表示

python3におけるforループの計算速度

## python3におけるforループの計算速度

競技プログラミングをした際に学んだpythonにおけるfor文の計算速度がコード依存性についてのまとめ。

pythonには、配列の記述方法として通常のlistとnumpyのndarrayがある。
行列計算をする場合、numpyを用いるほうが何かと便利なので全てnumpyのndarrayを利用していた。
しかしfor文を書く際、むやみにnp.arange()を用いるとかなり計算速度が遅くなる。

“`python:ex_bad.py
for i in np.arange( 5 ):
print( i )
“`

“`python:ex_good.py
for i in range( 5 ):
print( i )
“`

元記事を表示

AtCoderの提出自動化をする(Python)

# はじめに

MacBookを買いました。Air 2020 i7 16GBRAM 512GBSSDのモデルです。
これまで使っていためちゃくちゃ重い(物理)Windowsの2倍は余裕で超えるベンチマークが出るのでその性能ももちろん嬉しかったのですが、Macの一番惹かれていたのは画面内外のデザインとフォントレンダリングです。UIも綺麗で大満足です。せっかくなので環境構築ついでに最近ハマっているAtCoderの提出自動化をすることにしました。提出言語はPythonですが他の言語でも同様です。

#準備
## 必要なもの
まだ入っていない場合は以下を事前に入れておきます。ちなみにエディタはコンテスト用にVSCodeと普段のエディタ用にAtomとで兼用しているので、以下適宜読み替えてください。
### Hyper
MacのターミナルはWindowsに比べてだいぶマシですが、それでも多少のダサさがあります。
いろいろ探したところ、[Hyper](https://hyper.is/)というターミナルがとても綺麗です。サードパーティーでポケモンの着せ替えテーマとかもあるらしくて可愛いです。以下、`

元記事を表示

TkinterでQRコードメーカーを作ってみた!

プログラミングの勉強の為に、とにかく何か成果物を作りたい!と思い、pythonのTkinterでQRコードメーカーを作ってみました。

“`Python3:qrcode.py
import tkinter
from PIL import Image,ImageTk
import qrcode

url = ”
img = imgtk = None

def click_btn():
global url,img
url = entry.get()
img = qrcode.make(url)
draw_code()

def draw_code():
global imgtk #PhotoImage()はグローバル変数に入れないとすぐ消滅し、画像が表示されない
canvas.delete(‘QRCODE’)
imgtk = ImageTk.PhotoImage(img)
canvas.create_image(
300,
300,
image=imgtk,

元記事を表示

【Colab】pillow画像取得をURLから直接行う

# まずPillowをColab上にインストール
“`python:pytohnコード
!pip install Pillow==7.0.0
“`
#画像読み込み
これでとりあえず画像取得できる。

“`python:pytohnコード
from PIL import Image
import requests
import io

url = ‘https://www.python.org/static/community_logos/python-logo-master-v3-TM.png’
img = Image.open(io.BytesIO(requests.get(url).content))
img
“`
# Colab URL
https://colab.research.google.com/notebooks/empty.ipynb#scrollTo=lIYdn1woOS1n
# 参考URL
https://note.nkmk.me/python-pillow-basic/

元記事を表示

【Python】importするモジュールと同名のファイルを作るとAttributeErrorになる

ライブラリの動作確認をしようと思っただけなのに思わぬところでハマりました。

例えばjsonモジュールを試すために`json.py`というファイルを作ったとします。

“`python:json.py
import json

obj = {
“id” : 1,
“name” : “hoge”,
}

str = json.dumps(obj)
print(str)
“`
問題なさそうなコードですが…。

これは、実行するとエラーになります。

“`bash
$ python3 json.py

AttributeError: module ‘json’ has no attribute ‘dumps’
“`

jsonモジュールにdumpsがないって言われてます。

これは自身がjsonというファイル名なので標準モジュールより優先されて読み込まれてしまったためです。

よって、リネームしてやれば解決です。

“`
$ mv json.py json_test.py
$ python3 json_test.py
{“id”: 1, “name”: “ho

元記事を表示

メトロポリス・ヘイスティング法を用いてPythonで2019統計検定準一級の問題を数値的に考える

##自己紹介
データサイエンスを専攻している大学生です。コンピューターサイエンスをメインに学んでるわけではないので多少知識はあれども、明らかに知識不足です。
画像解析に興味を持ち勉強していますが、数理統計学の知識を深くしたいという思いから統計検定準一級合格を目指して勉強中です。
##本題
今回はベイズ統計学とシミュレーション技法を勉強中に触れたMCMC(マルコフ連鎖モンテカルロ法)、特にその中でもメトロポリスアルゴリズムについての理解を深めようと思い、試しにPythonでプログラミングしてみたので記事にしました。
具体的な内容はタイトル通り去年の統計検定準一級の問7で出題されたベイズ統計学の問題をメトロポリスアルゴリズムを用いて考えてみようというものになっています

「MCMCやベイズ統計学について勉強してみたけどよくわかんない」みたいな方が参考にできるような記事を書きたいなと思いますので、逆にベイズ統計学やMCMCを熟知した専門の方からすると面白くもなく、間違いなどが目立つかもしれません。そのようなときは是非ご指摘よろしくお願いします。

#環境
・windows
・python 3

元記事を表示

Pythonゴルフテク(AtCoder)

#はじめに
AtCoderで今まで培ってきたPython3の中で短く書くテクニックの紹介となります。
なお、AtCoderのPython3のバージョンは3.4.3で、例えばf-stringsやセイウチ演算子など、短くなりそうな機能が使えなかったりします。
あくまでAtCoder上でのテクニックということになります(他のところで使えるかは知らない)。
思いついたことを書いていくのでとっ散らかってると思います。すいません。
#標準入力
Pythonの標準入力と言えばinput()を思い浮かべると思いますが、短く書くときは、input()よりもopen(0)が使われがちです。
openはファイルを開く関数ですが、第一引数に0を指定することで、標準入力から読み込んでくれます。
例えば、

“`
4
1
2
3
4
“`

のような入力が与えられ、最初の行を変数nに、残りの行をリストaに格納したい場合、

“`py
n,*a=map(int,open(0))
“`

と書くことができます。また、

“`
5 4
1 2 3 4 5
“`

のような入力が与えられ、最初の行をnとk、2

元記事を表示

Djangoのmodelにおいてslugfieldを使うメリット

# Djangoはいいぞ!:relaxed:

いいぞ!ということです。
Djangoにおけるslugがどういうものかについては触れられている記事はあったのですが、じゃあDjangoでslug機能を使うべき理由って何よ?書き方ってどうなのよ?という点に触れた記事はないようなので書こうと思いました。

# slugとはなんぞや?:rolling_eyes:

結論からいうとslugを使う理由はSEO対策のためなのですが、最初にまずはslugについての説明をしましょう。

Django Documentの中の用語集においてslugは以下のような説明をされています。

>スラグ (slug)
ある要素に対して付けられた短いラベルで、英語のアルファベット、数字、アンダーバー、ハイフンからなり、ふつうは URL に使われる。例示すると、次のようなよくあるブログエントリの URL では:
`https://www.djangoproject.com/weblog/2008/apr/12/spring/`
最後にある文字列 (spring) がスラグです。
[用語集](https://docs.dj

元記事を表示

ubuntu20.04+apache+mod_wsgiで、日本語ファイル名がopenできなかった話

* ubuntu20.04
* apache2
* mod\_wsgi (`pip3 install mod_wsgi`でインストール)

ローカルPCで、flaskを使った自作アプリケーションをapache+mod\_wsgiで使っているのですが、ubuntuを20.04にしたら、例外が発生するようになってしまいました。

“`
[Wed Apr 29 04:26:54.738674 2020] [wsgi:error] [pid 38764:tid 140083800012544] UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 22-23: ordinal not in range(128)
“`

発生しているのは`open`関数を呼び出しているところで、対象は日本語ファイル名なので、おそらくそれが問題ではないかと推測。
試しに`sys.getfilesystemencoding`メソッドで確認してみると、確かに「`ascii`」が返ってきました。
しかし、ubuntu19.10まで

元記事を表示

【初心者向け】panadasで移動平均の算出のメモ

### rolling関数使用の事例
データの分析や予測にあたって、グラフの作成等で移動平均が必要な場面は多いと思います。
sqlでもwindow関数を使用すれば、同様の事は可能だと思いますが、pandasのほうが簡単に実現出来る様に思います。

#### pandasのrolling関数を利用して、移動平均を算出する場合のメモを投稿します。
以下の様なcsvがあったとすると。
・ターミナルからheadコマンドの結果

“`terminal:csvファイルの一部

$ head dexjpus_20200417.csv
DATE,DEXJPUS
2015-01-01,
2015-01-02,120.2
2015-01-05,119.64
2015-01-06,118.26
2015-01-07,119.52
2015-01-08,119.51
2015-01-09,118.66
2015-01-12,118.32
2015-01-13,118.16
“`

**【1】移動平均の場合、rolling関数は、以下の様に実行しました。**
– 1.ローリング関数のmeanで移動平均の処

元記事を表示

Python 処理速度向上 Tips

#実行環境
MacBook Pro
python3.7.5

#ループ
###while i < N vs for _ in range(N) ```python i = 0 while i < N: #N=10**6 i += 1 ``` ```python for _ in range(N): pass ``` ![loop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304572/043e54df-14b2-f4b4-edce-f35e9fdcb0d2.png) #1次元配列 ##配列の初期化 ###[None for _ in range(N)] vs [None] * N vs np.empty(N) ```python tmp = [None for _ in range(N)] ``` ```python tmp = [None] * N ``` ```python tmp = np.empty(N) ``` ![initilize_1dim_arr.png](

元記事を表示

OTHERカテゴリの最新記事