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

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

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 と同じオブジェクト
>>>

元記事を表示

Anaconda,Python学習に参考になったサイトまとめ

##実行環境
・Windows10 Laptop&Desktop
・Anaconda
・VScode
・Python3.8.5

##参考
####基本,環境構築
・[【超入門コース】Python|プログラミング初心者向け講座 キノコード](https://www.youtube.com/watch?v=3jymAyMJjR8&list=PLavQwENTsEBUHi7XZHGfKjTQQdOvnYPmB)
・[Windows環境でのAnacondaのアップデート](https://qiita.com/kerobot/items/917dc7027e15f5ff75ac)
・[Anacondaのcondaとpipのinstallコマンドを使い分ける方法(管理上の方針)](https://code-graffiti.com/how-to-use-conda-and-pip-install-command-properly/)
・[Anaconda Prompt の作業フォルダを変更](http://izmmr.blog.jp/archives/10188841.html)

####GU

元記事を表示

Python3.6のパッケージングとモジュールについて

パッケージ? モジュール?を作る必要があったが、Pythonの基本がわからずハマってしまったので備忘録として残しまます。

ひとまずパッケージとモジュールの違いがわからないが、実験から以下を得られた.

### 環境

– Python3.6

### 条件

ディレクトリ構成

“`
fisig/
__init__.py # 空のファイル
converter/
__init__.py
base.py
sound.py
acc.py
“`

sound.py

“`py

from .base import base_converter
class SoundConverter:
def convert():
base_converter()

“`

importのパターン

“`py

def test_import():
import abesig.converter
abesig.converter.sound.SoundConverter()

impo

元記事を表示

FLASKでクイズアプリをつくる

やりたいこと

エクセルファイルからクイズデータを読みこみ、クイズを出題する。
答えの選択肢が3つあれば、3択クイズ。ひとつだけなら入力問題にする。

工夫するとこ

■クイズのテーマを選ぶことができる
■問題はランダムにでてくる
■3択の順番も変わる

方法

python-3.8.5
Flask

エクセルファイルを読みこみ、出題する

今後の計画

クイズデータをデータベース上におき、第三者も登録できるようにする
正解率をデータベースに記録し、年齢ごとにちょうど良い難度(80%くらいかな)の問題を出題する

コード

https://github.com/isamimasi/quiz

Demo

http://isamimasiquiz.herokuapp.com/
元記事を表示

PythonでTwitter API v2を使ってみよう。ツイートを探す編

こんにちは。:relaxed:だよ。
夏も終わるねー。朝晩が涼しくて、気持ちがいいよね。

さてさて今日は新しくなった(らしい)TwitterAPIのSearchを使ってみるよ。

## TwitterAPI v2で変わったことは?

>[TwitterAPIv2の新機能](https://developer.twitter.com/en/docs/twitter-api/early-access)

詳しくは公式を読んでね。 :relaxed: がおっと思ったところだけ載せると・・

1. v1では、スタンダード・プレミアム・エンタープライズの3つのプランごと、別々のAPIが提供されていた。
→v2では1つのAPIに対して、Basic・Elevate・Customのアクセスレベルを設定するようになった。
プランの切り替え時にAPIの変更が不要になり、移行が容易に!

2. デフォルトのレスポンスはコンパクトになり、必要なデータフィールドをAPIのparameterで指定することで、必要な情報だけを取得できるようになった。
しかも、取得できるデータフィールドもより詳細になったらしい!

元記事を表示

seaborn,pairplot日本語で出力する。

結構前にseabornでpairplotを行なった際にラベル名が日本語でなくて文字化けしてしまうことがありました。その解決法について共有できたらと思います。

##解決方法について

“`python

import matplotlib
matplotlib.use(‘TkAgg’)
import matplotlib.pyplot as plt
“`

真ん中のコードが鍵。
             
参考させて頂いたサイト
>https://stackoverflow.com/questions/56656777/userwarning-matplotlib-is-currently-using-agg-which-is-a-non-gui-backend-so

元記事を表示

pythonのルールに関して学ぶ、python学習歴8ヶ月目の私。~PART.1~

pythonの学習を初めて8ヶ月目、最初からwebスクレイピングの学習をメインにし、インデックス値の指定方法や基本的な変数、辞書、リストの型など最低限の勉強してこなかった私。機械学習や初歩的な問題に遭遇することが多くなっていると感じたため、順序がオカシイですが基礎的な部分に戻っていきます。

##pythonのルールについて

関数・変数に関して
小文字を採用する
予約語と衝突する場合は”_”で区切って名前を設定

##モジュールに関して
?モジュールとは
他のpythonファイルにて実行され、他のコードの場でも参照する場合それをモジュールという。
(自分で作ったpythonファイルを利用するため)
_を指定しても良い。(これだけでも)
・よくモジュールのコードの中で

“`python

if __name__ == ‘__main__’:
“`

が出現しますが、これはモジュールの実行によって誤作動が起こらないようにするためだそうです。
これに関しては、発生問題に関しても

元記事を表示

pythonでクローリング,スクレイピング,文字取得と画像保存

#下準備

“`python
import re
import requests
from pathlib import Path
import requests
from bs4 import BeautifulSoup
“`

#作業フォルダを作る

“`python
output_folder = Path(‘作業フォルダ’)
output_folder.mkdir(exist_ok=True)
“`

#yahoo天気のデータを取得したい

requestsを使ってhtmlの要素を取得する。

“`python
url = ‘https://weather.yahoo.co.jp/weather/jp/13/4410.html’
html = requests.get(url).text
“`

このままだと読みにくいのでBeautifulSoupで構造を書き直す

“`python
soup = BeautifulSoup(html, ‘lxml’)
“`

soupを確認して取得したい情報がどこにあるか確認する。
今回は**今日明日の天気**

元記事を表示

TypeError:mul():argument ‘other’ (position 1) must be Tensor,not listエラーの解決法

## 以下のプログラムを実行した際に次のようなエラーが出た。
“` :実行文
seqlen = torch.tensor(10)
mask = [[1] * seqlen]
“`
“` :エラー文
TypeError:mul():argument ‘other’ (position 1) must be Tensor,not list
“`

# 原因
Pytorchのバージョン由来のエラー
torch>0.3.1からtorch.tensorとリストの演算が不可能になっているらしい

# 解決法
1. pytorchのバージョンを`torch<=0.3.1`に下げる 2. 次のようにプログラムを修正する ```:変更前 mask = [[1] * seqlen] ``` ```:変更後 mask = [[1] * int(seqlen)] ```

元記事を表示

windowsで快適なPython 3 (Anaconda)開発環境を作る

# はじめに
[僕が書いたC/C++版も必要な方は是非ご参考ください](https://qiita.com/pengincoalition/items/2bc1e0a80b114d6c49a6)
Windowsで開発環境を築きたいという人は多いと思います。
そこで、開発環境を作りたいと思います。
試したバージョンはWindows10です。
[Anacondaの説明はいらない。早くインストール方法・始め方を見たいという方はこちらをクリックしてください](#anacondaのインストール手順)

随時、画像の追加や本文の修正をします。
問題点、誤字、アドバイスなどありましたらコメント欄で教えて下さい。

# 入れるもの
生のPython3ではなくanaconda(Python3)を使います。

# anacondaとは?

## メリット1
Python3とはプログラミング言語です。[^1]
しかし、読者の中にはディープラーニングや科学計算などに使いたいと思っている人が多数いらっしゃると思います。
それらはPython3だけではできません。[^2]
**しかし、anacondaなら行列計算

元記事を表示

「ゼロから作るDeep Learning」自習メモ(その8)6章のグラフを matplotlibで描いてみた

「ゼロから作るDeep Learning」(斎藤 康毅 著 オライリー・ジャパン刊)を読んでいる時に、参照したサイト等をメモしていきます。 [その7](https://qiita.com/slow_learner/items/efbe24999562c3630c93)←

##5章 誤差逆転伝播法を読んでも、正直、わかったようなわからないような

ただ、この手法によって、勾配の計算が非常に速くなるということ、
「レイヤ」としてモジュール化して実装することの利点くらいは理解しました。

P162からは、誤差逆伝播法を使った学習のプログラムが載っていますが、これを実行するためにはP142以降に載っている、各種定義をしているプログラムも必要です。

##6章では、ここまでくる途中で、これってどうするんだろ? と思ったことにも説明してくれているのですが・・・

説明してもらったからと言って、理解できるものではない。

こういう時は、わかることだけ押さえて先に進むか、本の内容に関することは何でもいいから、いろいろやってみるしかないわけで・・・

###とりあえず、P169の図を描いてみた。

元記事を表示

機械学習のEDAで使ったもの

*これは自分用メモです

今までに使用したコードのメモ書きです
##intersection

“`python:intersection
a=[‘A’,’B’,’c’]
b=[‘B’]
c=a.intersection(b)
“`

配列aと配列bの積集合を出力する関数
ジャッカード係数の計算などで使いました。

##stopword

“`python:stopword
from nltk.corpus import stopwords
stop_words = stopwords.words(‘english’)
print(stop_words)
“`

英語のstopwordを取得します。
Tweetの感情予測で使用しました。
**stopwordとは**
自然言語処理で除外される一般的な単語


treemap

“`python:treemap
from ploty import graph_objs as go
import plotly.express as px

fig=px.treemap(list,value=’common’,title=’

元記事を表示

ロジスティック回帰を用いた予測

### JGSSデータを使って機械学習の勉強をしました。
(大学で課題として出したものを少し書き換えました。)

データ:[JGSS](http://jgss.daishodai.ac.jp/data/dat_top.html)
*学術利用のみが可能らしいです


###テーマ
大きなテーマとして結婚生活にフォーカスを当てました
[先行研究](https://nfrj.org/nfrjs01-2005_pdf/nfrjs01-2005kato1.pdf)として挙げられていた離婚の要因とされているものを変数としてロジスティック回帰を行いました。
以下がコードです

“`python:title
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

y=data[‘domarry’]
features=[‘ageb’,’sexa’,’szttlsta’,’incsp’,’incself’,’incpar’,’chiled’,

元記事を表示

kabuステーション®APIのWebsocketをPythonで受ける

# 概要

[前回](https://qiita.com/shirasublue/items/914e1d62d8308623b56b)に引き続き、auカブコム証券が個人に提供するkabuステーションAPIをPythonから利用する。
今回は、銘柄のWebsocketによる配信をPythonで受ける。また同時に、銘柄の登録、登録解除、登録全解除のコードも紹介する。

# 環境

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

# 追加パッケージ

– websockets
– requests
– pyyaml

# コード

### 銘柄登録

“`python
import json
import requests
import yaml

# —

def get_token():
with open(‘auth.yaml’, ‘r’) as yml:
auth = yaml.safe_load(yml)

url = ‘http://localhost:18080/kabu

元記事を表示

PythonでPDFファイルを統合する

## はじめに
Pythonの基本文法を勉強するために、複数のPDFファイルを1つのPDFファイルに統合するプログラムを書きました。PDFファイルの結合・書き込みには[PyPDF2](https://pythonhosted.org/PyPDF2/)を使用しています。

## PyPDF2をインストール
pipを使用してPyPDF2をインストールします。

“`
> pip install PyPDF2
“`

## インポート
PDFファイルを統合するために`PdfFileMerger`を、フォルダ指定時にPDFファイルを自動的に見つけるために`os`, `glob`をインポートしておきます。

“`python:merge.py(1)
from PyPDF2 import PdfFileMerger
import os
import glob
“`

## 初期化
統合するための初期化を行います。

“`python:merge.py(2)
def main():
merger = PdfFileMerger()

merge_files = []
“`

元記事を表示

Beautifulsoupでtableをjsonで取得するもっともシンプルな方法

# 環境
beautifulsoup4==4.9.1

# やり方

“`python3
output_json = {}
table = soup.find(“table”, class_=”table_class foo bar”)
rows = table.findAll(“tr”)

for row in rows:
json[row.find(“td”).text.strip()] = row.find(“th”).text.strip()

print(output_json)
“`

これだけ?
みなさんがやる時はtableの`class_`に取得したいテーブルのクラスを書くだけ

# 参考
https://qiita.com/gaborotta/items/328d01355cd3e12bd070

元記事を表示

Windows10 + VSCodeでflake8とautopep8を使う

VSCodeのウィザードに従うとコケるので手動でインストールや設定を行う

## 導入の流れ

1. `pip`にPATHを通す
1. `%USERPROFILE%\AppData\Local\Programs\Python\Python38-32\Scripts`
2. cmdを立ち上げflake8とautopep8を入れる
1. `pip install flake8`
3. VSCodeを立ち上げ適当なPythonファイルを開き、LinterとFormatterを問われたら設定する
1. Linterは設定ファイルにこれ書けば多分通る
1. `”python.linting.pylintPath”: “flake8”,`

## flake8のエラーを無視する方法

正直どうしようもないケースもあると思う

– VSCodeの設定に以下を追記。エラーはカンマ区切りで増やせる

“`
“python.linting.flake8Args”: [
“–ignore=E722”,
],
“`

元記事を表示

OTHERカテゴリの最新記事