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

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

Pythonで1行で複数データを扱う方法

Python3で1行でスペースで分けられた複数の数の和を求めるプログラムです。

“`python3
# coding: utf-8
# 入力
input_line = input()
#数の和の変数を定義
goukei=0
#スペースで仕切って数字を取り出す
for num in input_line.split():
#データを整数型に変換して合計を求める
goukei += int(num)
#合計を標準出力する
print(goukei)

元記事を表示

Pythonでif条件の中で変数への代入も行いたい

この記事では Python3.8 以降の機能である__代入式__を使っています。

# 問題のコード
ある変数の値がNoneでなければ、処理を行いたいケースがよくあるとおもいます。
代入式を用いないで書くと、一度(*1)if文の外で変数を宣言し、(*2)if文の条件に利用し、(*3)if文内の処理に利用する、というコードになります。
if文の中で使いたいのにif文の外で一度変数に格納してから使うというのが、冗長な感じがします。

“`py
user = {‘name’: ‘Taro’, ‘gender’: ‘1’}
name = user.get(‘name’) # …(*1)
if name: # …(*2)
print(name) # …(*3)
“`

# 代入式 x := y を用いる
そんなときは代入式を用いましょう。
プログラミングではざっくり、文⇒返り値無し、式⇒返り値有りと考えられます。
`x := y` の代入式では、代入した値が返ってきます。

“`py
user = {‘name’: ‘Taro’, ‘gender’: ‘1’}
if

元記事を表示

tensorflow画像分類でハマったので対処法をメモ retrain image classifier

## TensorFlow を用いた画像分類

tensorflowを用いた画像分類で花の画像を分類するチュートリアルでてこずったためをメモします。

今回、特にversionがネットの情報と違うだけで、エラーを吐いたためバージョン情報を先に載せておきます。

Version

python 3.7.6
tensorflow 1.15.0
tensorflow-hub 0.12.0
tensorflow-estimator 1.15.1

インストールしたもの

初めにAnaconda環境を構築して、Anaconda prompt(仮想環境)を立ち上げます。
その後、pip install ~を用いてtensorflow(1.15), tensorflow-hubをインストールしました。

:::note warn
ここで、注意しなければならないのがバージョン情報で下記のサイトなどを参考に進めていくと”tensorflowにappが存在しません”というようなエラーが出てしまいます。
:::
https://qiita.com/quotto/items/645b01cf9c3

元記事を表示

Python3: AWS IOT の Device Shadow (botocore)

こちらのプログラムを Botocore で書いてみました。
[Python3: AWS IOT の Device Shadow](https://qiita.com/ekzemplaro/items/5bf3510fb46b36007c2d)

エンドポイントは次のコマンドで調べます。

“`bash
aws iot describe-endpoint –endpoint-type iot:Data-ATS
“`

エンドポイント が次の場合のサンプルです。
>https://abcd6goq68zt4o-ats.iot.ap-northeast-1.amazonaws.com

もの
>sample_sep26

デバイスの状態が OFF であることを通知

“`py:report_off_thing.py
#! /usr/bin/python3
# coding: utf-8
#
# report_off_thing.py
#
# Sep/29/2021
# ——————————————————

元記事を表示

PySide2とPyCharmでGUIツールを作ってみる

# ■ はじめに

Youtube で Cygames さんが期間限定で公開していた Python の動画を見てちょっとやってみたくなって触ってみました。
ひとまずは触りだけ。

# ■ 開発環境

– PyCharm Professional 2021.2.2
– PySide2 5.15.2
– Python 3.7

# ■ PySide2 をインストール

– 1. PyCharm 上で Python3 に対応したプロジェクトを作ります。(ここでは **PySide2Proj** で作ったものとする)
– 2. 「メニューバー」>「ファイル(F)」> 「設定(T) Ctrl+Alt+S」> 「プロジェクト: PySide2Proj」>「Python インタープリター」>「+マーク」を選択。
– 3. `PySide2` と入力しパッケージをインストール。

# ■ 外部ツール設定

PySide2 を使いやすいように外部ツール設定をしておきます。

「メニューバー」>「ファイル(F)」> 「設定(T) Ctrl+Alt+S」> 「ツール」>「外部ツール」>「+マーク」を選択。

元記事を表示

Raspberry Pi で Grove の LCD モジュールを使う (背景色)

こちらのプログラムを改造して、バックライトの色を変えるプログラムを書きました。
[Raspberry Pi で Grove の LCD モジュールを使う](https://qiita.com/ekzemplaro/items/38257ac6a55951b0d99d)

“`py:backlight.py
#! /usr/bin/python3
#
# backlight.py
#
# Sep/29/2021
# ——————————————————————
import sys
import time
import backlight_lib
# ——————————————————————
sys.stderr.write(“*** start ***\n”)
while True:
backlight_lib.setRGB(0xff,0,0)
time.sleep(2)
backlight

元記事を表示

Raspberry Pi で Grove の LCD モジュールを使う

次のページを参考にしました。
[Grove – LCD RGB Backlight](https://wiki.seeedstudio.com/Grove-LCD_RGB_Backlight/#play-with-raspberry-pi)

実行時の様子
![IMG_20210929_080733.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/bf72166e-feb2-624c-a4ad-87e9e2cff37a.jpeg)

プログラム

“`py:display_lcd.py
#! /usr/bin/python3
#
# display_lcd.py
#
# ——————————————————————
import sys
import time
import lcd_lib

# —————————————————–

元記事を表示

Jupyter Notebookで初期設定すること

環境はWindows10で実行しています。
Macの場合はファイル設定が不要など違いはあると思います。

# デフォルトのパスを設定

## Anacondaプロンプトで設定ファイルの作成

“`
jupyter notebook –generate-config
“`

上記を実行すること下記にファイルが作成されます。

“`
C:\Users\{user_name}\.jupyter\jupyter_notebook_config.py
“`

この`jupyter_notebook_config.py`を変更してきます。

## 設定ファイルの編集

設定ファイルから下記の箇所を探します。

“`
#c.NotebookApp.notebook_dir = ”
“`

このコメントアウトを外してパスを指定してあげます。
その際にraw文字列で指定するように気を付けましょう。

raw文字列は下記のように`r”`で記載することです。

“`
r’C:\Users\{user_name}\.jupyter\jupyter_notebook_config.py’

元記事を表示

機械学習の初心者の僕が困りがちなこと解決法まとめ

最近機械学習を始めたのですが困ったことが多々あった(ある)のでその解決法などを随時書いていこうと思います。
また、こんなことに困ってこう解決した!や私の解決法よりももっと便利なイイ方法があるという方はぜひ教えていただけると幸いです。

**目次**
>1.read_csvのオプション
>2.NaN以外の欠損値の置き換え法
>3.データの中の項目の型変更
>4.~~~

##1.read_csvのオプション
私は今signateで勉強をし始めたのですが、そのデータの形は.tsvでした。
いつも通りの下記のような方法で読み込みをすると

“`python
sample = pd.read_csv(‘train.tsv’)
“`
![スクリーンショット 2021-09-28 18.43.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764631/aa87ef7e-c9fa-cc5b-63fd-12536bb9aa36.png)
のような形になってしまい、収まりがつきません。
データを見るとわかるの

元記事を表示

Pythonのクラスメソッドで自身の型を返す方法

# 概要
– 自身のインスタンスを返すクラスメソッドを作成する際、下記のように返り値の型をクォーテーションで囲む必要がある

“` Python
@classmethod
def create(cls,
name: str,
age: int
) -> ‘User’:
“`

– これはファイルの先頭で`from __future__ import annotations`を呼ぶことで解消できる

“` Python
from __future__ import annotations
from dataclasses import dataclass

@dataclass
class User:
name: str
name_in_lowercase: str
name_in_uppercase: str
age: int

@classmethod
def create(cls,
name: str,

元記事を表示

さっきまで動いてたのに、docker-compose up がうまく行かなくなり “Can’t connect to MySQL server on ‘db’ (115)” と言われた

#エラー
>
root@…….. :/code# python manage.py makemigrations
/usr/local/lib/python3.7/site-packages/django/core/management/commands/makemigrations.py:109: RuntimeWarning: Got an error checking a consistent migration history performed for database connection ‘default’: (2002, “Can’t connect to MySQL server on ‘db’ (115)”)

などと言われ、dbサーバのbashに入ってデータベースの中身を見てみると、、、

“`bash:bash(mysql)
mysql> use django_docker
Database changed
mysql> show tables;
Empty set (0.00 sec)
“`

何もなかった!

#解決法

ということでリセットして

元記事を表示

Python3: AWS IOT の Device Shadow

こちらのスクリプトのいくつかを、Boto3 で書いてみました。
[AWS IOT の Device Shadow](https://qiita.com/ekzemplaro/items/1d6bbc68703aa646380f)

エンドポイントは次のコマンドで調べます。

“`bash
aws iot describe-endpoint –endpoint-type iot:Data-ATS
“`

エンドポイント が次の場合のサンプルです。

>https://abcd6goq68zt4o-ats.iot.ap-northeast-1.amazonaws.com

もの

>sample_sep26

デバイスの状態が OFF であることを通知

“`py:report_off_thing.py
#! /usr/bin/python
# coding: utf-8
#
# report_off_thing.py
#
# Sep/28/2021
# ————————————————————

元記事を表示

Pythonで10進数→N進数変換とN進数→10進数変換

## N進数から10進数への変換
`int()`関数の第2引数に指定した基数から10進数に変換してくれる

“`
print(int(‘100’, 2)) # 4
print(int(‘100’, 3)) # 9
“`
2つ目の引数には`2〜36`までの値を指定しないとエラーとなる

## 10進数からN進数への変換

### 2進数、8進数、16進数への変換

“`
base10 = 10
print(format(base10, ‘b’)) # 1010
print(format(base10, ‘o’)) # 12
print(format(base10, ‘x’)) # a
print(type(format(base10, ‘b’))) #
“`
変換後の型は文字列型である
2進数はbinaryの略で`b`
8進数はoctalの略で`o`
16進数はhexadecimalの略で`x`

### 2進数、8進数、16進数以外への変換
`numpy`をimportして`base_repr関数`を使うと良い

“`
import numpy a

元記事を表示

Tabnetはどのように使えるのか

## はじめに
最近、KaggleでTabnetというニューラルネットワークモデルが流行っていると知りました。
テーブルデータコンペといえばGBDT最強のイメージでしたが、ここでもニューラルネットワークモデルが台頭しつつあるようです。そこで今回は、Tabnetについて

– どんな嬉しさがあるのか
– どのように使うのか

という観点から、論文の要点とリポジトリの使い方について調べてみました。

## Tabnetとは

### 概要
Tabnetは、テーブルデータ向けのニューラルネットワークモデルです。
決定木ベースのモデルの解釈可能性を持ちつつ、 大規模なテーブルデータに対して高精度な学習が可能です。
特徴量の作成を必要としないエンドツーエンドの学習モデルです。

### リファレンス

#### 論文
Tabnetの論文は、Google Cloud AIチームによって発表されました。

https://arxiv.org/abs/1908.07442

Tabnetは[Google Cloud AI Platform の組み込みアルゴリズム](https://cloud.goog

元記事を表示

【pyenv-win】pyenv を使って Anaconda をインストール

## 環境
+ Microsoft Windows 10.0.19042.1165
+ Git 2.33.0.windows.2(コマンドは Git Bash で実行)
+ pyenv 2.64.11

## 現象
pyenv に Anaconda をインストール方法を調べると、`pyenv install -l` でインストールできるバージョンを確認し、`pyenv install anaconda3-5.3.1` のようなコマンドを実行することでインストールできるようだ。しかし、私の環境では `pyenv install -l` を実行しても ‘anaconda’ の文字が見当たらなかった。

## 原因
pyenv-win が Anaconda のインストールをサポートしていないのが原因のようだ。

> kirankotari commented on 25 Jul 2020
we are not supporting this feature yet. Need sometime.([link](https://github.com/pyenv-win/pyenv-win/i

元記事を表示

Pythonのimport方法まとめ

## 1. 概要
長年PHPを使用してきた私には、Pythonではパッケージのimportに毎回悩まされます。
なので、importの方法とコールの方法をまとめました。

## 2. 原則
1. importできるのはパッケージ、モジュール、クラス、関数、変数 (メソッドはimportできない)
1. importした名前でコールする ⇒ “import” の右側に書いた名前がコールする時の修飾子になる

## 3. 例

### 1. 関数 os.path.join()を使いたい場合
os.pathパッケージはposixpath.py (Windowsの場合はngpath.py) に関数群が定義されている

“`Python
import os
# 修飾子はos、path.joinがコールする関数名
path = os.path.join(“/”, “var”, “opt”)
“`
“`Python
import os.path
# os.pathが修飾子、joinがコールする関数名
path = os.path.join(“/”, “var”, “opt”)
“`
“`

元記事を表示

ModuleNotFoundError: No module named ‘allauthlogin’ が出た

>
ModuleNotFoundError: No module named ‘allauthlogin’

settings.py のINSTALLED_APPSで以下のようなコードを書いていたら、`python manage.py makemigrations` で上のようなエラーが発生した。

“`python3:setting.py
INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,

“””allauth”””
‘login.apps.LoginConfig’,#login app
‘django.contrib.sites’, #for djnago-allauth
‘allauth’,

元記事を表示

discordBOTを作ろう(Python)

#はじめに
DiscordのBOTを作ってみたいと思い、この記事を書きました。
これからBOTを作りたい方の手助けにでもなれば幸いです。
#手順
1,BOTのアカウントを用意

2,discord.pyのインストール

3,ソースを書く

大雑把に書きましたが一つずつ丁寧に行なっていきます。
#1,BOTのアカウントを用意
[こちら](https://discord.com/developers/applications)から右上のNew…を押します。
![スクリーンショット 2021-09-25 20.22.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1925390/39458344-b8c7-bca4-3245-8d33708945f2.png)
そうすると上のようになるので名前をつけます。なんでもいいです。
次に、左のSETTING欄のbotをクリック。そこのAdd botを押します。
![スクリーンショット 2021-09-25 20.24.14.png](https://qiita

元記事を表示

【pyenv-win】pyenv のインストールと実行

pyenv-win: Windows 用の pyenv

https://github.com/pyenv-win/pyenv-win

(記事中の引用はすべて上記ページの README.md から)

## 環境
+ Microsoft Windows 10.0.19042.1165
+ PowerShell 5.1.19041.1237
+ Git 2.33.0.windows.2

## pyenvとは
> pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python.
(訳:pyenv はシンプルな Python のバージョン管理ツールであり、Python の複数のバージョンを簡単に切り替えることができる。)

## インストール
次のいずれかの方法で pyenv-win をインストールする

+ pip を使用
+ zip ファイルを使用
+ Git を使用
+ Chocolatey を使用

### pipを使用

元記事を表示

PyMuPDFでページの内容をJSON形式で抜き出そうとしたら”Object of type bytes is not JSON serializable”って出たので直した

文字のフォントとかの指定を取る必要があったのでJSON形式で抜き出してみました。
んが、”Object of type bytes is not JSON serializable”ってでるので、何とか直してみたのが以下のコード。
default=format_for_jsonと指定しているのがミソ。

“`Python
import base64
import json
import fitz

def format_for_json(obj):
encoded = base64.b64encode(obj)
decoded = encoded.decode(‘utf-8’)
return decoded

doc = fitz.open(“hogefuga.pdf”)
for page in doc:
page_dic = page.get_text(“dict”)
json_test = json.dumps(page_dic, ensure_ascii=False, default=format_for_json)
print(

元記事を表示

OTHERカテゴリの最新記事