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

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

[Pandas] DataFrameの欠損値補完方法の解説サイトを勝手にまとめ

# 概要

欠損値補完方法についての情報が検索してもなかなかうまくヒットしないので、独断と偏見でサイトさんをまとめました。
`dataframe.resample(‘1Min’).asfreq()`みたいなアップサンプリングをしたときに私が欲しい情報でした。

## fillna関連

欠損箇所を、ある程度決まりきった値で補完するメソッド。
※`method=’ffill’` や `’bfill’` を使うと、fillnaでも柔軟な補完が可能

### わかりやすい

分かりやすかったのは以下の2サイト

http://hxn.blog.jp/archives/9674676.html

https://qiita.com/0NE_shoT_/items/8db6d909e8b48adcb203#fillna

### 詳しい

非常に詳しいのはここ(半分より少し下までスクロールする)

https://note.nkmk.me/python-pandas-nan-dropna-fillna/

## interpolate関連

前後の値やindexを考慮して柔軟に補完することができ

元記事を表示

【深層学習】活性化関数ReLUについて

深層学習モデルを構築する時、うまく活性化関数を選ぶのは大事ですね。
その中で、よく使われてる活性化関数ReLUについて話したいと思います。

## ReLUとは?
ReLUはRectified Linear Unitの頭文字から取ってきたものです。
数式を書くと

“`math
f(x) = max(x, 0)
“`

数式を読んだら、$x$が負数の場合であれば、
$f(x)$は$0$のままということがわかります。

Pythonで書いてみると

“`python
def relu(x) :
return max(x, 0)
“`

## ReLUの微分

– $x$が正数の場合であれば:

“`math
\frac{\mathrm{d} f(x)}{\mathrm{d} x}=\frac{\mathrm{d} x}{\mathrm{d} x}=1
“`

– $x$が$0$以下の場合であれば:

“`math
\frac{\m

元記事を表示

【ツール】マークダウン形式の表とcsvを相互変換するプログラムをpythonで書きました。

どうも、たかふみです。
マークダウン形式の表(行の部分)とcsvを相互に変換するプログラムを書きました。

## ■プログラム例1
「csvで記載されたデータ(左)」を「マークダウン形式の表における行のフォーマット(右)」に変換します。

“`
■ プログラムA
タイトル1,URL1 | 1 | [タイトル1](URL1) |
タイトル2,URL2 ⇔ | 2 | [タイトル2](URL2) |
タイトル3,URL3 | 3 | [タイトル3](URL3) |
“`

その他、マークダウン形式の表をcsvへ変換するプログラムやヘッダー含めてマークダウン形式の表に変換するプログラムがあります。

プログラムはpython3, 環境構築はdockerでやっています。
PCにdockerを入れれば環境は簡単に構築できますし、プログラム自体も`python {所定のファイル}.py`で実行できます。

## ■github
URL:https://github.com/wallkickers/python3_output_txt_from_csv

## ■環境構築

元記事を表示

PipenvでPytorchをインストールするときにPipfile.lockを生成する【python】

#概要
`pipenv`で`PyTorch`をインストールするとき、普通にやると`Pipfile.lock`の生成に失敗するので、回避策を調べました。
#環境

“`
% sw_vers
ProductName: macOS
ProductVersion: 11.5.2

% pipenv –version
pipenv, version 2021.5.29
jiro@JiroMBA gpt2test %
“`

#問題
`pipenv`で`PyTorch`(cpuバージョン)をインストールしてみます。

“`
mkdir test
cd test
pipenv –python 3.9.6
pipenv install torch torchvision torchaudio
“`

以下のようなエラーメッセージが表示され、`Pipfile.lock`の生成に失敗します。

“`
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] d

元記事を表示

a = (1 and 2 or 3 and 4)を説明できますか?

# 目的
pythonのand/or演算子を掘り下げておきたい。

# 題材
and/or演算子が複数含まれている文。a = 1 and 2 or 3 and 4
タイトルでは()をつけたがなくても一緒。※括る場所を変えると結果は変わる。
ポイントは右辺の演算結果は何者か?なぜそうなるか。

# 先走って結論
a = 2 と同等です。

# ポイント
* TrueやFalse以外の変数だってand/or演算子の処理ができる。
* and/or演算子は結果としてTrueやFalseを返さない。(演算子の左右にそれ自体がいれば話は別)
* and/or演算子は左右のどちらかを選ぶ処理。
* 同時に and/or (またはnot)が含まれるとき、優先順位がある。

# 解説
## and/or演算子
`if money >= 1000 or points >= 1200`
こんな感じの条件分岐はよく見るでしょう。現金1000以上さもなくばポイント1200以上の場合は、って意図です。
現金なくてもお買い物ができそうなケースに使えるif文です。

次のケースでは、財布を忘れずに持ってきていれ

元記事を表示

# 使い終わった壁紙を自動で削除したい!

# 使い終わった壁紙を自動で削除したい!
「東京ディズニーリゾートの壁紙を毎月自動でダウンロード・設定するプログラムを作った!」と友人に話をしたところ、「昔の壁紙は消えないの??」と聞かれました。
私は何かと記念に残しがちですが、よくよく考えれば確かに要らない気がするので、ダウンロードするタイミングで削除しちゃおうと思います。

前回の記事はこちら↓

https://qiita.com/ayk_f/items/40eca2f7376a2b04ce4c

# ざっくりフローチャート
前回の記事で、「今月の壁紙が指定フォルダに格納されていない場合、壁紙をダウンロードする。」という条件分岐を追加したので、壁紙をダウンロードする処理の前に、古い壁紙を削除する処理(オレンジ部分)を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/b9c7522e-a36d-f0a4-3fad-dcf2d24c91ac.png)

# 削除対象ファイルのリストアップ
まずは削除対象の

元記事を表示

Pythonでエラーが出た時、まずやること

## はじめに
プログラミングにおいて、エラーとの戦いは付き物です。特に最初のうちは、基本的な構文エラーで止まってしまうことが多くあります。このようなエラーを自分で解決できるようになるために、エラーが起きた時にすることをまとめてみました。

### 想定読者
Pythonで初めてプログラミングに触れる方
すでに環境は整っているものとします。

### 環境
– VisualStudioCode
– Python3.9
– JupyterNotebook(VSCode版)

## 1. エラーメッセージを読む
ほとんどのプログラミング言語では、実行時に想定と異なる状況が起きた時エラーが出るようになっています。
(C言語などではその一段階前のコンパイル時にエラーが出る場合もあります)

Pythonでは読みやすいエラーメッセージが出てくるので、読んでみましょう。

### よくあるエラー

#### IndexError

リストなどのインデックスがリストの長さを超えてしまった時に出るエラーです。

リストの長さが10のとき、インデックスは0~9の範囲でなければならないことに注意してくだ

元記事を表示

【5】辞書型で自販機データを作ろう

# 演習問題
keyに商品名(str型),valueに値段(int型)を代入し
自販機の中身(キーバリューの組み合わせ)が表示され,
「[自分の好きな商品の値段]円を入れてください!」とアナウンスされるアプリを作りましょう.

– 辞書型変数名は任意で構いません.※自販機=vendingmachine

– 要素は最低5個以上作りましょう.

HINT:print(str(vm[‘おでん’])+”円を入れてください!”)
print関数内で,数字の型を文字の型として表示させる作業が必須.

.pyファイルで提出してください!

【出力例】

“`
{‘ラーメン’: 600, ‘おしるこ’: 80, ‘ゼリー’: 100, ‘プロテイン’: 170, ‘おでん’: 200}
200円を入れてください!
“`

解き終わり次第,[まなBOX](https://daltontokyo.mana-box.jp/epf-web/Servlet/)にて提出しましょう.演習の提出状況で成績判断をします.

→[次の演習]()へ
#### 演習問題一覧は[こちら]()

#引用
[Am

元記事を表示

【4】リストの要素同士の計算

# 演習問題
リスト型の変数名を「numbers」とし,

1.numbersへ 250, 120, 800, 670, 210を順に代入し,print()を用いて出力しましょう.
2.要素0と要素3の和をnumbers_sum,差をnumbers_diff ,剰余をnumbers_remへ代入し,print()を用いて出力しましょう.
3.要素1の値を190へ書き換え,print()を用いて出力しましょう.
4.numbersの最後の要素へ480を追加し,print()を用いて出力しましょう.

これからの演習は,特に指示がない限り .py ファイルで提出してください!

【コマンドでの出力例】

“`
[250, 120, 800, 670, 210]
670
800
250
[250, 190, 800, 670, 210, 480]
“`

解き終わり次第,[まなBOX](https://daltontokyo.mana-box.jp/epf-web/Servlet/)にて提出しましょう.演習の提出状況で成績判断をします.

→[次の演習]()へ
#### 演習問題一覧

元記事を表示

windows10へ2021年10月10日時点で最新のPython3.10.0で jupyter lab をpipでインストールしようとしたら遅延しまくってはまった件について

最近もっぱらMacbookで開発していて、自作PCのwindows10へはjupyterlabはおろか、pythonすらインストールされていないというとても稀有な環境下からjupyter labのインストールを試みた。

そうしたら、結果的に1日以上の時間を浪費したので備忘録。
ただし、結論から得られた教訓をまず言うと、大切なのは問題解決であって、最新が良いわけではないということ。
問題解決の目標大事。

# 経緯
自動売買システム構築やら言語解析のためちまちまとコードを書くためのツールとして、所有する全デバイスにjupyter notebookをインストールしたいと思う。

実行環境は自宅PC(windows)やリモート(CentOS)を想定しているので、マシンパワーのあるPCでDockerを動かしてローカルで検証してリモートに投げようかしら。

じゃあ、windowsでも開発できるようにjupyternotebookあったら便利じゃないですか。

よし、インストール!!! (所要時間10秒)

# 遅延にぶつかるまでの流れ
公式サイトから、最新のPythonのインストーラーをゲット

元記事を表示

Python機械学習/pickleファイルを使ったオブジェクトの保存

# Summary
Pythonで機械学習をする際のデータやモデルの保存にはpickleファイルを使用するのが非常に便利なので,その使い方についてメモを残しておく.

# データの準備
今回はScikit-learnのガンデータを使用.

“`py
from sklearn.datasets import load_breast_cancer
import pandas as pd

cancer = load_breast_cancer()
data_feature = pd.DataFrame(cancer.data, columns=cancer.feature_names)
data_target = pd.DataFrame(cancer.target)
“`

# csvファイルでデータ管理
まずは一般的なCSVファイルでのデータ読み書きについて記す.

csvファイルで保存

“`py
data_feature.to_csv(‘data_feature.csv’)
data_target.to_csv(‘data_target.csv’)
“`

csvファイルの

元記事を表示

Ubuntuに最新バージョンのPythonをインストールする

ubuntu20.04に最新のPython3.10.0をインストールする

###Ubuntuのバージョン確認。
cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION=”Ubuntu 20.04.3 LTS”

###アーキテクチャは64bit。
arch
x86_64

###ビルド環境の準備
sudo apt update
sudo apt install build-essential libbz2-dev libdb-dev \
libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
libncursesw5-dev libsqlite3-dev libssl-dev \
zlib1g-dev uuid-dev tk-dev

###ソースコードのダウンロード
Python Japanのダウンロードページ
https://pythonlinks.python.j

元記事を表示

Python3.10 新機能!パターンマッチ構文解説

# はじめに
Python3.10.0 が2021年10月4日にリリースされました。その中でもパターンマッチ構文は大きな機能追加の一つだったため、この記事で解説したいと思います。

https://www.python.org/dev/peps/pep-0634/

私が運営しているYouTubeチャンネルの動画内でも解説しているのですが、動画をみるのが苦手、テキストで知りたい、という人向けにQiitaでも記事を投稿することにしました!

# 基本構文
パターンマッチは、あるオブジェクトに対して、どのパターンにマッチしているかを評価して処理を分岐させる構文になります。

`match`の後ろに、調べたい対象のオブジェクトを指定して、`case`の後ろにパターンを記載します。例えば、ひとつ目の`case`のパターン1に当てはまった場合は、`case`の中の処理が実施されます。パターンは色々な記載ができるため、いくつか解説していきます。

“`python3:base.py
match 対象オブジェクト:
case

元記事を表示

kivyMDチュートリアル其の参什漆 Components – NavigationRail篇

ハロー、Qiita。清秋の候、すがすがしい秋晴れの
今日この頃、いかがお過ごしでしょうか。

はいー、先週入れられてなかった時候の挨拶ですが、今週で使ってみました。
合ってますかね、使い方。

先日は地震などがありましたが、みなさんはご無事でしたでしょうか。常日頃、
備蓄などはしないといけないなと感じたくらい、身の危険を感じましたね。と、
いってもいざ事が起きたときは何も動けなかったのですが汗

というわけで、少し話は脱線しましたがKivyMDの時間は相変わらずオープン
します。今日は、NavigationRail編となります。

## NavigationRail

いざ始まるといっても、いつものリンクは飛ばすというのはありますが、今日は
少し重要なこともあるので何点か触れてみます。

2点ほどあるのですが、まずは他のナビゲーションと組み合わせてはいけないという
ことですね。他のナビゲーションとしては、先週やったNavigationDrawerともう
1つは以前やったBottomNavigationですね。これらと組み合わせると望ましくない
と書かれてあります。

もう1点は、デバイ

元記事を表示

Python 基礎

## 目次
1. [基礎文法](#1-基礎文法)
1. [演算子](#2-演算子)
1. [制御文](#3-制御文)
1. [関数](#4-関数)
1. [モジュールとクラス](#5-モジュールとクラス)

## 1. 基礎文法

### 基本的なルール
* 文末のセミコロンは不要(つけることもできる)
* {}で処理をまとめるのではなく、インデントで処理をまとめる
* メンバアクセスはドットで行う
* 処理を複数行にまたぐ場合、改行にはバックスラッシュを使用する

### 変数
* 「変数名 = 値」で宣言できる
* 「変数名:型名 = 値」で型を明示して変数宣言できる

※ただし、実行時に指定型以外の値を入れても、実行時エラーとはならないので注意
型指定はあくまで制作側へのヒント。

“`python
# 型指定なし
val = 10

# 型指定あり
val:str = ‘あいうえお’
“`

### コメント
* 単一行は「#」
* 複数行のコメント機能はないが、3重のシングルクォートorダブルクォートで囲むことで、複数行の文字列扱いにできる

“`python
# 単

元記事を表示

Pipでuwsgiのインストールが失敗する場合の対処法

# 事象
pipにてuwsgiをインストールしようとしたところ、下記のとおり失敗した。

“`
$ sudo pip install -U uwsgi
Collecting uwsgi
Using cached uwsgi-2.0.20.tar.gz (804 kB)
Building wheels for collected packages: uwsgi
Building wheel for uwsgi (setup.py) … error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-97dwq_9q/uwsgi_24c3a89c34c847b9be2d2f525d846ef6/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-97dwq_9q/uw

元記事を表示

【AtCoder】ABC207のA,B,C問題を解く

# PythonでABC207のA,B,C問題を解く

ABC222のA,B,C問題をPython3で解答しています。
簡単な解説はコードの中に記載しています。

SNSでの発信も少しずつ始めました。フォローしていただけたらフォロー返してます。。!
[Twitter](https://twitter.com/Edu_ner)

[A – Four Digits](https://atcoder.jp/contests/abc222/tasks/abc222_a)
##
“`python:python
# 文字列として受け取り、足りない桁文を足す。
n = input()
length = len(n)
if length == 4:
print(n)
elif length == 3:
print(‘0’+n)
elif length == 2:
print(’00’ + n)
elif length == 1:
print(‘000’+n)
“`

[B – Failing Grade](https://atcoder.jp/conte

元記事を表示

Pythonでランダム文字列を生成する

## 結論
こうするとできます。コメントアウトに出力を書いてます。

“`python
import random
s = ”.join(random.choices(‘PA’, k=4))
print(s)
# PPAP
“`

## 解説

`random.choices(‘PA’, k=4)` で `P`,`A` からランダムにどちらかを4回選んでリストに入れたものを作ります

“`python
import random
print(random.choices(‘PA’, k=4))
# [‘P’, ‘P’, ‘A’, ‘P’]
“`

`”.join` で文字列のリスト `[‘P’, ‘P’, ‘A’, ‘P’]` を空文字で連結します

“`python
print(”.join([‘P’, ‘P’, ‘A’, ‘P’]))
# PPAP
“`

以上

## ちなみに

`string.*` が便利です。`’PA’` の代わりに使うと良いかもしれません。

“`python
import string
print(string.ascii_lowe

元記事を表示

pip installをしたときにGitのsubmoduleがインストールされない問題

# はじめに
Github上で開発をしている際に開発しているmoduleとは別のRepositoryのmoduleを利用したい場合があります.
そのようなときに`submodule`を利用します.一方で,単純にsubmoduleを加えるだけだと`pip install`をした際にsubmoduleが追加されないという問題が発生します.その対処法について簡単に説明します.

参考:[How to write setup.py to include a Git repository as a dependency](https://stackoverflow.com/questions/32688688/how-to-write-setup-py-to-include-a-git-repository-as-a-dependency/)

# 問題設定
Sphere関数という関数を作成し,それをsubmoduleとして利用したいケースを想定します.
例として[submodule_practice_parent](https://github.com/nabenabe0928/submod

元記事を表示

Pillow(PIL)で生成するgifの画質を上げる

## 単刀直入
`im.quantize()` するだけ

## はじめに
Pythonの画像処理ライブラリのPillowを使えば、簡単にgifアニメーションを作ることができます。
詳しいことはみんな大好き[note.nkmk.me](https://note.nkmk.me/python-pillow-basic/)に譲りますが、適当に画像を数枚開いてオプションを決めるだけです。

“`python:makegif.py
from PIL import Image

im1 = Image.open(“hoge.png”)
im2 = Image.open(“huga.png”)
images = [im1, im2]
images[0].save(‘test.gif’, save_all=True,
append_images=images[1:], optimize=False, duration=500, loop=0)
“`

![test.gif](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

OTHERカテゴリの最新記事