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

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

Pythonで拡張子を変換するコード

備忘録やOUTPUT的な意味での蓄積

#作成目的
作業用の画像をすべてpngに変換したいことが定期的に起こるので、対象フォルダに格納されている画像をすべてpngに変換する

#作成環境
・windows10
・Anaconda
・python3
・Jupyter Notebook

#ドキュメント
①PNGに変換したいフォルダ名を入力
②folderがなければcurrent_folder内に、png_folder を作成し画像をpngへ変換
③すでに同じフォルダ名がある場合、誤操作を防ぐためにErrorになる

#ライブラリの読み込み

“`python:All Necessary Libraries.py
import pathlib
import os
import shutil
import pprint
import numpy as np #numpy使ってないです.癖です.
from glob import glob
from PIL import Image
from tqdm import tqdm
from pathlib import Pat

元記事を表示

研究者におすすめ サイエンスマガジンを日本語でチラ読みする

研究者におすすめ サイエンスマガジンを日本語でチラ読みする

3大科学雑誌(Nature, Science, Cell)のひとつ、「サイエンス誌」。
幅広い分野で世界最高峰の研究に触れることができます。
サイエンス誌にはEメールアラートとRSS購読のサービスが充実しています。 

https://www.sciencemag.org/about/email-alerts-and-rss-feeds

このサイエンスのRSSをGoogle翻訳した後、エクセルにまとめ、自分のWEBページにアーカイブしています。今回は、RSSを翻訳し、エクセルにまとめるコードを紹介します。

目的

サイエンスマガジンのRSSを読みこみ、自動翻訳をかけ、エクセルファイルに落とす。

方法

python3
pandas
feedparser
googleapiclient

コード

https://github.com/isamimasi/sciencem

元記事を表示

PaizaからBacklog登録(Python3)

# tl;dr
Paizaを使ってとりあえずプログラムでBacklogの課題を登録したい人向けだよ

# 環境とか
言語はPython3系

### 環境構築は抜きにしてとりあえずBacklogに課題を登録しよう
[Paiza](https://paiza.io/ja)はオンラインエディタで、環境を構築しなくてもプログラミングができるサービスです。

下記プログラムの、「#####」のところを書き換えれば、Backlogの課題が登録できます。

1. 「api_key」は、Backlogのメニューから「個人設定」→「API」→「新しいAPIキーを発行」で発行できます
2. 「space_key」は、利用しているBacklogのURL「https://#####.backlog.jp/」の「#####」の部分のことです。ドメインが「backlog.com」のときもあるので、その部分は適宜書き換えてください。
3. 「project_id」は、プロジェクトのID(数字)です。当該プロジェクトの「課題」→画面右の「…」→「CSV」でダウンロードしたCSVの「プロジェクト」列(B列)を見ると早

元記事を表示

【Python】numpyでinfとNaNの扱い方

#発生した問題
python3でnumpyを用いた画像処理(画像評価)ソフトの出力に,
平均・標準偏差・最大・最小にinfとNaNが含まれる.

“`python:sample_code.py
import numpy as np
img = #なんか画像の配列

print(np.max(img))
print(np.min(img))
print(np.mean(img))
print(np.std(img))

>inf
>-inf
>NaN
>NaN
“`

こんな感じ
結構ハマった

#inf,NaNとは
そもそもinfとかNaNって**なんなん**でしょうね?(激うまギャク)
調べると沢山情報が出てきました.
###inf
infinityの略.無限大を表す.
-infは負の無限大なわけですね.

###NaN
>浮動小数点数にはNaN (Not a Number, 非数) と呼ばれる、実数の異常な値を表す特殊な数があります。
これは無限大-無限大、0.0/0.0といった不定形や、負数の平方根、負数の対数といった実数で表せない計算を行った場合に発生します。

[NaNの

元記事を表示

Youtubeをmp3化して超安全にダウンロードする方法【Python】

今回はYouTubeにあげられている動画をmp3としてダウンロードする方法をまとめてみます。

参考サイトやgithubも載せます。

ミスや疑問点がありましたらコメントしていただけると幸いです。

*注意点*

あくまで個人的にYouTubeにアップロードした動画をダウンロード、そしてmp3化することを主としております。

そのため、自分以外の誰かが投稿した動画から手に入れた音源を使って問題が起きても一切の責任を負いません。

私的利用は大丈夫だという声も多いですが、自己判断で行うようにしてください。そのつもりで以下ごらんください!

# 完成品
あくまで例です。
https://www.youtube.com/watch?v=E8bUKuF9v10 をmp3化するとします。

### 開いたところ
![2020-09-10_22h16_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582590/0c8aa9d0-41da-9284-944b-048d5d1c8578.png)

![

元記事を表示

pandasで横持ちデータを縦持ちデータへ変換する方法

まずは下記でデータフレームの用意をします。

“`python:DateFrameの用意
import pandas as pd

values = [[‘1’, ‘John’, ‘somekey1-1’, ‘somevalue1-1’, ‘time1-1’, ‘somekey2-1’, ‘somevalue2-1’, ‘time2-1’],
[‘2’, ‘Tom’, ‘somekey1-2’, ‘somevalue1-2’, ‘time1-2’, ‘somekey2-2’, ‘somevalue2-2’, ‘time2-2’],]
df = pd.DataFrame(values, columns=[‘id’, ‘name’, ‘key1’, ‘value1’, ‘time1’, ‘key2’, ‘value2’, ‘time2’])
df
“`

上記コードで下記のデータが作られます。

| | id | name | key1 | value1 | time1 | key2 | value2 | time2 |
| — | — | — |

元記事を表示

Spacemacsでpyrightを使う

[Spacemacs](https://github.com/syl20bnr/spacemacs/tree/develop)でLSPの要となる[lsp-mode](https://github.com/emacs-lsp/lsp-mode)のうち[lsp-pyright](https://github.com/emacs-lsp/lsp-pyright)によってPythonの型チェッカー[pyright](https://github.com/microsoft/pyright)が使えるようになったことを最近知ったので使う

(従来の[pyls](https://github.com/palantir/python-language-server)でいいじゃん説はあるが最近なんか重い気がしたので速いと評判のpyrightを試している)

## pyrightインストール
node使ってるならnpmでpyrightをインストールしておく

“`bash
$ npm install -g pyright
“`

## SpacemacsでPython LayerのLSPサーバをp

元記事を表示

言語処理100本ノック2020やってみた part2

#はじめに
[言語処理100本ノック2020やってみた part1](URL:https://qiita.com/KawabataK/items/18322b538c9912e08867)

* コマンドの説明は自分の解釈なのであしからず

#目次
###第2章: UNIXコマンド
[事前準備](#事前準備)
[10. 行数のカウント](#10-行数のカウント)
[11. タブをスペースに置換](#11-タブをスペースに置換)
[12. 1列目をcol1.txtに,2列目をcol2.txtに保存](#12-1列目をcol1txtに2列目をcol2txtに保存)
[13. col1.txtとcol2.txtをマージ](#13-col1txtとcol2txtをマージ)
[14. 先頭からN行を出力](#14-先頭からN行を出力)
[15. 末尾のN行を出力](#15-末尾のn行を出力)
[16. ファイルをN分割する](#16-ファイルをn分割する)
[17. 1列目の文字列の異なり](#17-1列目の文字列の異なり)
[18. 各行を3コラム目の数値の降順にソート](#18-各行を3コラ

元記事を表示

Python基礎備忘録その2

#記事概要
Pythonを少しでも読めるようになってみようと思い、[参考書](#参考文献)に沿って学習した備忘録になります。
Javaと比較して自身が気になった点、便利と感じた点をまとめております。
その1は[こちら](https://qiita.com/tk10/items/12a3c09b0c0f9a1499f7)
※かなり基礎的な内容になります。

#関数定義
pythonはメソッドのオーバーロードが出来ない代わりに、デフォルト引数を設定可能。

引数無し
def doFunc():
  関数処理

引数あり
def doFunc(a, b, c, …):
  関数処理

#####例
“`java:java
//引数無し
void doFunc1() {
print(“関数が呼び出されました。”);
}

//引数あり
void doFunc2(a, b) {
print(“a + b = ” + (a + b));
}

//return あり
int

元記事を表示

言語処理100本ノック2020やってみた part1

#はじめに#
[言語処理100本ノック 2020 (Rev 1)](URL:https://nlp100.github.io/ja/)の[第1章: 準備運動](URL:https://nlp100.github.io/ja/ch01.html)の自分なりの解答です。
問題文の意図と違った解答をしている時が多分あるのでその時はコメントください。

* 使用環境
* [google colab](URL:https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)

#目次

###第1章:準備運動
[00. 文字列の逆順](#00-文字列の逆順)
[01. 「パタトクカシーー」](#01-パタトクカシーー)
[02. 「パトカー」+「タクシー」=「パタトクカシーー」](#02-パトカータクシーパタトクカシーー)
[03. 円周率](#03-円周率)
[04. 元素記号](#04-元素記号)
[05. n-gram](#05-n-gram)
[06. 集合](#06-集合)
[07. テンプレートによる文生成](#07

元記事を表示

pythonでwordとexcelレポートを自動作成

#excel編

##excel作成

“`python
import openpyxl as opy
book = opy.Workbook()
“`

##シートの名前を確認

“`python
sheet1 = book.active
sheet1.title
“`

##シートの名前を変更

“`python
sheet1.title = ‘mysheet_1’
“`

##excelファイルを作成

“`python
book.save(‘make_excel.xlsx’)
“`

##既にあるファイルを開く

“`python
my_made = opy.load_workbook(‘make_excel.xlsx’)
“`

##指定のシートを編集する

“`python
sheet2 = my_made.active
table = my_made[sheet2.title]
“`

##セルを指定して文字を書き込む

“`python
table[‘A1’] = ‘How is the weather today’
“`

##セ

元記事を表示

グリッドサーチとランダムサーチ

# はじめに
手書き文字認識のCNNを用いたモデルを作成しようとしましたが、ハイパーパラメータをどう設定すれば精度が高いモデルが作成されるのかがわからなかったので、グリッドサーチを用いて最適なパラメータを探しました。
機械学習に関しては初心者ですので、有識者の方に精度を上げるためのいろんな方法を聞くことができればと思います。

# 前提
無料でGPUを簡単に使用することができるため、GoogleColaboratoryを用いて実装していきます。
グリッドサーチは指定したハイパーパラメータを総当たりで精度を調べるものですので、計算量が多く時間がかかってしまうのでGPUの使用をおすすめします。
ランダムサーチで求めると時間が圧縮されメリットを得られる場合がありますが、今回はグリッドサーチを使用します。

今回は隠れ層の数が3層のCNNモデルを作成することとします。
全結合層の数は適当に256,128,64としています。

層の深さ、全結合層の数が精度に及ぼす影響も調査すべきですが、今回は無視することとします。

# グリッドサーチ

## ライブラリのインポート

“`py
from

元記事を表示

SQLAlchemyのJSON型が更新できない場合の対処方法

# はじめに
JSON型に入れれそうなデータがあって、あまりみんな使ったことないということでJSON型を導入しました。
SQLAlchemyからデータを入れるプログラムを書いていてinsert出来たものの、update出来なかったので対処方法について書きます。

# 環境
Mysql 5.7
Python 3.8.1
SQLAlchemy 1.3.12

多分、Postgresqlでも同様の対処でいけると思います。

# テーブル構成
なんでも良いので、テーブルにJSON型作ればOKです。
JSONの中身は任意で問題ありません。

# insert
insertは特に問題になりませんでした。
入れたい`dict`を作って、カラムに設定すればOKでした。
配列でも特に問題ありません。

# update
問題はこちらで、中身を書き換えたいという時に普通に中身を書き換えても反映してくれませんでした。
反映方法としては`flag_modified`で明示的にカラムが変更されたことを通知してから`add`だったりで反映するとなります。

“` python
from sqlalchemy.o

元記事を表示

kabuステーション®API – REST API用のPythonラッパーをつくってみた

# 概要

以下のkabuステーションAPI記事回では辞書形式からjson形式への変換、requestsの作成、レスポンスのjson形式から辞書型への再変換を毎度行っていたが、このあたりを簡略化するモジュールを作成した。

– [kabuステーション®APIをPythonから使う](https://qiita.com/shirasublue/items/914e1d62d8308623b56b)

– [kabuステーション®APIのWebsocketをPythonで受ける](https://qiita.com/shirasublue/items/222c2bc7dbf284d24878)

# 環境

– Windows 10
– Python 3.8.5 ( Microsoft Store からインストール )

# 使い方

requests のインストールが必要である。

“`
pip install requests
“`

以下よりダウンロードまたはcloneする。

– https://github.com/shirasublue/python-kabusapi

k

元記事を表示

「ゼロから作るDeep Learning」自習メモ(読めない用語集)

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。

新しい分野で、新しい単語、用語が出てくるのは当然ですが、それがアルファベットの頭をとった略語だったりすると、非英語民族にはどう読めばいいのかわかりません。
その昔、専門学校でCOBOLを教えたとき、学生が最初につまづいたのが、COBOLで使われている命令の発音と意味でした。発音できないものは覚えられないし、使えない。

と言う事で、

この本の中に出てきた単語をまとめてみました。
読んでいる最中なので、本に出てきた順になっています。読み終えたら、ABC順に並べ直そうかと思っています。

####Python
パイソン もともと「にしきへび」の意味の英単語なので、その発音で読みます。
なんで、蛇? かというと、モンティ・パイソンというTV番組があって・・・(有名な話なので省略)

####NumPy 
ナンパイ これは、もとが数値演算(numerical operation)用のpythonライブラリーということだから、number(ナンバー)

元記事を表示

Pythonで記事テンプレを自動作成(Seleniumでスクレイピング)

####まえがき
毎回定型文を書くことも面倒になってきたのでPythonを勉強して自動化してしまえと考えた次第です

####本題

#####機器概要
・Windows10 Laptop
・Anaconda3 4.8.4
・Python3.8.5
・VScode

####手順
#####1. 環境構築
結局のところ環境を整えるのが一番面倒だと感じた(特にPath)
[参考](https://qiita.com/T170521/items/ff3975c89d359397c655)に分かりやすい解説等あるので参照してほしい
(※以前にVScodeのTerminalでLinuxと同じように実行できるようにしていたので困らなかったがどうやったか忘れた,cygwin64とか入れてPassを通した気がする)

AnacondaとVScodeで利用できるようにした
Anacondaをインストールして,システム環境変数からPathを通す
再起動してAnaconda promptで`Python -V`と`conda -V`でバージョンが確認できればOk
![image.png](https://

元記事を表示

Pythonメモ① フォルダ,ファイルの操作

# pythonによるファイル、フォルダの基本操作
自分用メモです。バージョンはpython3.7.1です。随時追記します。

## フォルダの作成
“` make_folder.py
# make folder
import os

def make_folder(path):
if os.path.exists(path)==False:
os.mkdir(path)

“`

## ファイルのみ取得する
“` get_files.py
import os
import sys

def get_images(path):
folder = os.listdir(path):
files = [f for f in folder if os.path.isfile(os.path.join(path, f))]
if len(files)==0:
print(“File does not exist”)
sys.exit()
return files

“`

## ファイルの名前と拡張子を取得
“`get_fil

元記事を表示

絶賛!! Python Pocket Reference (O’REILLY)。日本語版も欲しいな。訳せないところが。。。あるんですっ。

#目的
以下のPython Pocket Reference (O’REILLY)が、すごく、使いやすい!

 Python Pocket Reference, 5th Edition
 Python In Your Pocket
 By Mark Lutz
 Publisher: O’Reilly Media

( 出典:http://shop.oreilly.com/product/0636920028338.do )

![cat.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/342207/a002827a-92f1-8d7a-d42a-020d296f899d.gif)

しかし。。。。。
うまく意味がとれない英語があるので、念のため(備忘のため)、記事にする。
(おそらく、将来の自分が解決することを期待して。。。)

あとは、英語のことを書いていると、
少しづつ英語力が上がる期待。。。

#意味がわからない英語

##[その1]Noneについて

>None — a false pla

元記事を表示

*Python*ECHONET Lite対応家電(エミュレータ)を制御する

# はじめに
Flaskを使ったことがあり,ソケット通信のプログラムを書いたことがある方なら誰でも理解できる記事です.PythonのFlaskを使って家電の制御を試してみましょう.家電の制御はnode.jsを使用することが多いですが,Pythonを使う人が増えていることもあるため,Pythonを使って家電を制御しようと思います.まず,通信プロトコルとしては,家電を制御する際に標準的に用いられるECHONET Liteを使用します.ECHONET Liteに対応している家電は多いとは言えません.しかし,ECHONET Liteで制御できない場合でも,WebAPIなどが提供されている場合はそちらから制御できることがあります.制御する家電を見つける際は,ECHONET Liteだけでなく,WebAPIを探してみるということも試してみてください.次に,今回制御する家電ですが,ECHONET LITE対応家電を用意するのは大変なので,代わりにエミュレータを使用します.

# 前提
開発環境は以下の通りです.今回は2台のPCを使用します.
– エミュレータ実行用PC
– Windows 1

元記事を表示

Pythonの a += b と a = a + b は違う

いくつかのサイトで演算子 `a += b` が `a = a + b` と同じと書いてありますがミュータブルなオブジェクトでは厳密には異なります。
同じオブジェクトを指す変数がある場合は注意が必要です。(NumPy を使ってる人は特に!)

# 概要

一言でまとめると以下の違いがあります。
ミュータブルなオブジェクトでは、

– `a += b` では代入の前後で `a` が指すオブジェクトは変化しない。
– `a = a + b` では代入の前後で `a` が指すオブジェクトは変化する。

ただし、イミュータブルなオブジェクトではどちらの場合も変化します(@shiracamusさんのコメントに例があります)。

# 実験
`[1, 2]` に `[3]` を追加して `[1, 2, 3]` を作成する実験をしてみます。
`y` は代入前の `x` のオブジェクトを指します。
組み込み関数 `id(x)` でオブジェクトのIDを取得できます。

## `a += b`

“`python
>>> x = y = [1, 2] # y は代入前の x と同じオブジェクト
>>>

元記事を表示

OTHERカテゴリの最新記事