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

Python3関連のことを調べてみた2020年07月31日
目次

PythonでSQLite3を扱ってみる[備忘録]

#### 初めに
`sqlite`は`Python`に標準で入っているモジュール。インストールせずに`import`できる。
#### コネクト
“`Python
import sqlite3

db = “./exsample.db” # データベースまでのパス
con = sqlite3.connect(db) # コネクト
“`
#### テーブルを作る
“`Python
cur = con.cursor()
table = “Friend” # テーブル名
sql = f”””create table {table}(
id integer primary key autoincrement,
name text,
age integer,
)”””
cur.execute(sql) # SQL実行
self.con.commit() # 保存
“`
`id`は`primary key`で主キーにし、`autoincrement`で自動で振り分けるようにしている。
#### テーブルがなかったら作る。
“`Python
table = “Fri

元記事を表示

RaspberryPi上でFlask+uWSGI+NGINXを繋げる方法

いろんなサイトを参考にしているが、どれも自分の環境で動いているサイトがないため、試行錯誤しながら、やっと繋げることができたので、記録として残す。

やっとこと。

1. uwsgi.iniファイルの設定
1. uwsgi Unitサービスの設定(**ここで苦労**)
1. nginx confファイルの設定(**ここでも苦労**)

ノウハウとして、以下が必要と感じた。

– **socketプロキシサーバーの理解が必要**
– **仮想環境の実行パスの理解**

### 1. uwsgi.iniファイルの設定

“`
# uwsgi.ini

[uwsgi]

socket = /tmp/uwsgi.sock
chmod-socket = 666

# wsgiファイル
wsgi-file= <実行するPythonファイルのフルパス>
callable=app

# アクセス許可ホスト:ポート
socket=0.0.0.0:8080
“`

※重要なことはアクセス許可は**socket=127.0.0.1:ポート番号または0.0.0.0:ポート番号にすること**。なお、当初はh

元記事を表示

pythonで主成分分析(Scikit-learn版,pandas&numpy版)(【高等学校学習指導要領 情報Ⅱ】教員研修用教材)

# はじめに
主成分分析とは、対象の特徴を表す多変量のデータから複数の変数をまとめて主成分(特徴量)を作成する手法です。
次元削減が行える手法であり、データの構造を見やすくしたり、機械学習の計算量を削減して計算スピードを向上させたりすることができます。
簡単に言うと、相関のある多変量のデータを、ばらつきの方向と大きさに注目してより相関の少ない関数により、データを表現する手法です。
今回は、文部科学省のページで公開されている情報Ⅱの教員研修教材内の「主成分分析と次元削減」で取り上げられているものをpythonで実装しつつ、仕組みを確認していけたらと思います。

# 教材
[高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00742.html “高等学校情報科「情報Ⅱ」教員研修用教材(本編):文部科学省”)
[第3章 情報とデータサイエンス 前半 (PDF:8.9MB)](https://www.mext.go.jp/content/20200702-mxt_jo

元記事を表示

freeeAPIで勤怠打刻を自動化したい! その2

今回は、スクリプト作成編です(雑にまとめました。後で気が向いたら or 質問や指摘をもらったら、追記します。)

## 動機

人は、ルーチンワークを意識すると言うのが、苦手な生き物である!!(主語でかい)
みなさん、よく月末に勤怠を入力してくださいって、言われません?
言われない?自動化してる?

僕は割と言われます
毎回、「すみません(汗」と、言って勤怠を入れるのである。
もう、3回言われたら、自動化して対策するのが、エンジニアってものですよ。
(財布も月3回、家に忘れたから、忘れるものと割り切って対策組んだし)
ちょうど、人事労務freeeにはAPIが公開されているので、こいつで勤怠打刻を自動化しましょう!
ちなみに、言語は会社で使っているPythonです。
(PowerShell版もあります。)

Python版:https://github.com/EndoHizumi/timerecordeeer
PoiwerShell版:https://github.com/EndoHizumi/tr4ps1

## セットアップ

事前にPython 3.6以降をインストールしてくださ

元記事を表示

Python標準ライブラリにあるデータ構造の時間計算量

## 時間計算量比較

以下のページをもとにPythonの時間計算量を並べた。
載っていないメソッドについては、一部を自分で補足し、自分が理解していない残りはTBC。
https://wiki.python.org/moin/TimeComplexity
https://docs.python.org/ja/3/library/
https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt

* List:配列。現在の割り当てサイズを超えて拡張したり、先頭に近い場所に挿入/削除すると遅い。
* TupleはListと同じOperationと時間計算量を持つimmutableなデータ構造。
* Deque:双方向連結リスト+双端。真ん中あたりのindexにアクセスすると遅い。
* Setはmutable、Frozensetはimmutableでハッシュ可。どちらも同じOperationと時間計算量を持つ。
* DictとDefaultdictは同じOperationと時間計算量を持つ。
* setのaddは末尾に

元記事を表示

pythonでインピーダンス解析(EIS)【impedance.py】

##概要
インピーダンス(電気化学インピーダンス)の解析をpythonで行えるライブラリ[**impedance.py**](https://impedancepy.readthedocs.io/en/latest)を紹介します。測定したNyquist plotを、構築した等価回路モデルへフィッティングしてパラメータを得るところまでやります。
有料ソフト等が不要なので気軽に使えます
基本的にimpedance.pyの[公式チュートリアル](https://impedancepy.readthedocs.io/en/latest/getting-started.html#)に沿って説明し、ところどころ補足する程度ですのでよっぽど英語を読みたくない人向けです。
説明が要らない人用に一番下にコードをまとめて掲載してます。

###課題
オープンソースのツールだけを使ってインピーダンス解析をしたい

電気化学インピーダンス解析には測定装置に付随する解析ソフトが必要ですが、測定用PCでいちいち解析するのはめんどくさいですよね。。。
しかしソフトは有料のものが多く、ライセンスの関係で自分のPCに

元記事を表示

anvil-app-serverでcertificate verify failed。

前書き

以前、[Anvil](https://anvil.works/)を触ったのですが、ドキュメントを読み進めると、ローカルに実行環境を作ることができるようで、試しました。
が、素直に動作してくれず、ようやく動作させられたのでメモ。

参考

– [Anvil をローカル実行する](https://qiita.com/satamame/items/df9f5bc6c85a0976fee4)
– [[youtube-dl] python3のSSLエラー(CERTIFICATE_VERIFY_FAILED)](https://qiita.com/tommy19970714/items/96edba36dfde468e26f3)
– [Anvil Runtime and App Server](https://github.com/anvil-works/anvil-runtime)

環境

– Ubuntu 20.04 LTS 日本語 Remix
– Hyper-V マネージャー 10.0.18362.1
– Python 3.8.5

元記事を表示

[解決済み]Python3.8.5で「ssl module in python is not available」

前書き

UbuntuでPython3を使う場合、`apt`か`apt-get`でパッケージをインストールするのがスタンダードと思います。
ただ、「最新版」を使いたい場合、tarballからインストールしなければいけません。
今回、少々トラブりましたので、そのメモです。

参考サイト

– [“ssl module in Python is not available” when installing package with pip3](https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3)
– [Ubuntu環境のPython](https://www.python.jp/install/ubuntu/index.html)

環境

– [Ubuntu 20.04 LTS 日本語 Remix](https://www.ubuntulinux.jp/home

元記事を表示

pythonのlist comprehension(list生成法)について

# 最初に
ブロックチェーンの練習について初めてやってみたけど、かなり練習してきたpythonでもやはり忘れることが多く、一見してわかりそうなことが実はわからなかったりする。今回は実は、この`all(k in value for k in list1)`というコードに出会って、わけわからんと思って調べたら、得られた知識です。メモっておこうと思った。

# pythonのリスト生成法
pythonのリスト生成法は色々あるが、今回紹介するlist comprehensionはその中で最も優れている方法かもしれない。  

早速例を見よ

“` shell
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
“`
じゃ`[1*1, 2*2, 3*3, …, 10*10]`のリストを作りたいけど、どうする?

“` shell
>>> L = []
>>> for x in range(1, 11):
… L.append(x * x)

>>> L
[1, 4, 9, 16, 25, 36, 49, 64,

元記事を表示

【macOS】Pythonのversionを切り替える方法【pyenv】

# はじめに
※本記事はPython初心者向けに記載した記事です。
 分かりにくい箇所や誤りはご指摘いただければ幸いですm(__)m

pythonのversionを2系から3系に切り替えるために以下の記事を参考にしたのですが、
つまずいてしまったので同じような事象が発生している方向けに参考になればと思い、記載します。
#### 参考サイト
[それでもPythonのversionを切り替えたい](https://qiita.com/bootsnin/items/5735f667a83beaca078b)

# .bash_profile を編集しても python の version が2系のまま。。
上記参考サイトの通り、.bash_profile を編集し、いざターミナルで以下のコマンドを実行しても version は2系のままでした。

“`ruby:qiita.rb
python –version
“`

# python のパスを確認
そこで次のコマンドを実行すると

“`ruby:qiita.rb
which python
“`

[/usr/local/bi

元記事を表示

pythonの@propertyについて

`@property`について語るには、基礎から語らなきゃいけないんです。

学校の例を見てみましょう。学生というクラスがあるとしましょう。

通常、クラスの属性を決めるときに、属性をそのまま公開しても良いのですが、勝手に変更することが可能となり、あまりおすすめできません。というのも、点数は通常0 ~ 100の範囲内に位置するので、デタラメに9999にもできてしまいます。明らかにおかしいですね。

“` python3
s = Student() #オブジェクト作成
s.score = 9999
s.score = 1111
# 勝手に書き換えられる
“`

ということで、`set_score()`や`get_score()`で成績を取得することにしました。(普通の流れです)

“` python
class Student:
def get_score():
return self.self._score

def set_score(self, value):
if not isinstance(value, int):
raise Val

元記事を表示

【総集編】7月ふりかえり

# はじめに

今月のふりかえりです。
月1で振り返り
今後は何を勉強するかを決めます。

——————————–
# 7月 1週目

2020/07/01 [【統計学】ふつうのエンジニアが統計学の勉強を始めてみた](https://qiita.com/ymd65536/items/dc0eff97e8fe86ac2c1d)

2020/07/05 [【統計学】ふつうのエンジニアが統計学の勉強を始めてみた- part2](https://qiita.com/ymd65536/items/9dc84ccef5138f64d129)

——————————–
# 7月 2週目

2020/07/08 [【キニナル話】jexcel使ってみた.xlsx](https://qiita.com/ymd65536/items/a05888bf563bf60ad161)

2020/07/12 [JavaとJavaScript 間違えられやすい問題](https://qiita.com/ymd65536/i

元記事を表示

【Python】2つの文章の類似性を固有名詞の傾向から計算。記事のレコメンデーションに利用。

# 概要
– 2つの文章の類似性を計算できれば、レコメンデーション機能に利用できます。
– 予め、文章の類似性を計算してDBに記録しておき、現在表示している文章と、内容が似ている文章をレコメンデーションできます。

# 今回説明する方法
– 文章中の固有名詞とその出現回数を取得します。
– 取得した文章中の固有名詞の傾向が2つの文章で、どの程度似ているか計算します。
– 類似性の計算にはピアソン相関係数を利用します。
– プログラミング言語はPython3です。

# 個別の処理の説明
## 文章中の固有名詞とその出現回数を抽出

#### MeCabを利用して、文章中の固有名詞を取得します。
#### MeCabの辞書にmecab-ipadic-neologdを設定します。
– この辞書は新語に強い辞書で、これを設定することで固有名詞をかなり正確に取得できるようになります。
– https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md

#### ストップワード(多くの文章に現れるワード)

元記事を表示

JupyterHub でカスタムアクションを定義する(hook 機能)

JupyterHub の`hook`機能を使うと、ログイン時にユーザ毎のディレクトリを自動作成できたりする。

設定ファイル(`jupyterhub_config.py`)に関数として定義する。
hook には以下の種類がある。

– `c.JupyterHub.user_redirect_hook`
– `c.Spawner.auth_state_hook`
– `c.Spawner.post_stop_hook`
– `c.Spawner.pre_spawn_hook`
– `c.Authenticator.post_auth_hook`

※それぞれの詳細な説明は割愛(未調査)

公式リポジトリにサンプルスクリプトが紹介されている。

[jupyterhub/examples/bootstrap-script at master · jupyterhub/jupyterhub](https://github.com/jupyterhub/jupyterhub/tree/master/examples/bootstrap-script)

例えばユーザフォルダを自動作成するhook

元記事を表示

旧帝国大学理系学部中退がプログラミングを始めて半年でPaizaのスキルチェックでAランクとるまでのぽえむ

~学ぶことへの喜びを取り戻すまでの道程~

>意外と自分と同様のタイプの学歴コンプレックスに苦しんでる方が沢山いるかも, と思ったのでPaizaスキルチェックでAランクをとれた喜びを共有, そしてこれからの自分の学習の指針を改めて明示的にしたいと思ったので, 思い切って記事を書いてみようかと思いました.

緩い自己紹介

>高校の頃は数学が得意でした. 某旧帝国大学の理学部に入りました. そのあと研究というものへ一切の興味を失い, 勿論プログラムなんかも全く学習せずに文字通り何も学ばずに4年生で中退しました. 以後とあるきっかけでソフトのテスターの職に就くまで完全にサイエンスとは縁のない生活を送っていました.そんな自分がプログラミングを通してサイエンスを生きる喜びと感じ, 一つの実力の指針であるPaizaスキルチェックAランクを”Hello World”から半年で身につけれたお話です.

~1月~きっかけはExcelのマクロでした

>テスター業務はExcelでの単純作業が非常に多かったです. 当時の自分にとっては意外だったのですが, 想

元記事を表示

Twitter API 検索で大量データを収集(CSV)

#開発環境
 Python3.7.3
 Twitter API

#参考にしたページ
https://qiita.com/kngsym2018/items/2524d21455aac111cdee
http://westplain.sakuraweb.com/translate/twitter/Documentation/REST-APIs/Public-API/The-Search-API.cgi
https://syncer.jp/Web/API/Twitter/REST_API/
https://qiita.com/mida12251141/items/97bce06e4167db8ed3d5
https://qiita.com/tomozo6/items/d7fac0f942f3c4c66daf

#事前にやっておくこと
Twitter APIの登録申請。ここでは割愛。
私は申請から許可まで4日ほどかかりました。
「参考にしたページ」の一番目で丁寧な解説がされてます。

#やりたいこと
1レコード1ツイートなテーブル形式の状態でcsvファイルに保存する。
各データには改行はない

元記事を表示

DynamodbにPython:floatを入れる場合

# 結論
値として挿入する場合はサポートされていないため、一旦文字列>Decimalにしてから挿入すること。

“`python
item={
“val”:Decimal(str(float_val))
}
“`

参照:
https://stackoverflow.com/questions/49633504/python-and-dynamodb-decimal-inexact#comment93902878_52450303

元記事を表示

プログラミング初心者がnews情報収集botを作成した話

こんにちは、初めての投稿です。
私は非IT企業に勤めるサラリーマンです。
プログラミング歴は約1年です。
勤めている会社の社訓として、情報を積極的に収集しようというようなものがあります。
情報、かつては、新聞等を読んで入手するのが通常だったとは思うのですが、今は新聞を読んでいる人も減っていると思いますし、ネットでニュースを見られる時代です。便利になったと思います。しかしながら「積極的に」ニュースサイトにアクセスして情報を得るというのは、日々通常業務を行っている自分にとっては難しいことでした。業界に関連する情報等、いくつかチェックしたいサイトはあるのですが、面倒くさがりな性分なのか、わざわざサイトに飛ぶのが面倒くさいです。そこで、「積極的に」という社訓に沿っているとは言い難いかもしれないですが、定期的にニュースサイトを巡回し、最新のニュースをメールで送信するbotを作成しました。(そもそも情報が洪水のように流れている時代の中で、「積極的に」とはどういう行為を指すのだろう?)
また、最近拝読した「独学プログラマー」という本でオブジェクト指向プログラミングという手法が紹介されておりましたので

元記事を表示

Pythonビルトインの様々な文字列操作

# まえおき

– この記事は執筆中の[やさしくはじめるPythonプログラミング](https://github.com/simon-ritchie/python-novice-book-preview)の本の特定の章の部分抜粋です。
– 入門本なので初心者の方向けです。
– ビルトインの文字列操作関係の章の内容が主になります。
– Qiita記事にマッチしていない箇所(「章」や「ページ」といった単語が使っていたり、改行数が余分だったり、リンクが対応していない等)があるという点はご留意ください。気になる方は↑のリンクの電子書籍版をご利用ください(Githubでダウンロードできます)。
– コメントなどでフィードバックいただいた場合、書籍側にも活用・反映させていただく場合があります。

# 文字列の各操作

前章までで基本的なPythonの操作や型・ビルトイン関数などを学んできました。本章では文字列に対して追加の操作について学んでいきます(前章までである程度操作方法について学んできましたが、他にも大切で便利な操作方法などが色々あるのでそちらを学んでいきます)。

数は多いので全ては覚え

元記事を表示

【高等学校学習指導要領 情報Ⅰ】教員研修用教材:データの形式と可視化(python)

#はじめに
今回は文部科学省のページで公開されている情報Ⅰの教員研修用教材の「第4章情報通信ネットワークとデータの活用・巻末」内の「データの形式と可視化」について、Rのソースコードの個所を、pythonで実装及び若干の補足考察をしていきたいと思います。

#教材
[高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416756.htm “高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省”)
[第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB)](https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/09/24/1416758_006_1.pdf “第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB)”)

#環境
– ipython
– [Colaboratory – Google Cola

元記事を表示

OTHERカテゴリの最新記事