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

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

Pythonによる線形代数:A=LU分解

# A=LU 消去と分解

3×3の行列$A$を消去により対角要素にピボットをもつ上三角行列$U$と下三角行列$L$に分解できることを確認する。

## 消去による対角要素にピボットをもつ上三角行列の取得

Uは対角要素にピボットをもつ上三角行列である。Lは下三角行列である。Aは消去の手順を通して上三角行列と下三角行列に分解することができる。

“`math
A=\left(
\begin{array}{cc}
1 & 2 & 1 \\
0 & 1 & 1 \\
2 & 7 & 9 \\
\end{array}
\right)
“`
とすると、$A$の3行1列目の要素2を消去するには3行目から1行目の2倍を引く。

“`math
\left(
\begin{array}{cc}
1 & 2 & 1 \\
0 & 1 & 1 \\
0 & 3 & 7 \\
\end{array}
\right)
“`
つぎに3行目2列目の要素3は2行目を3倍して3行目から引くこ

元記事を表示

Pythonにおけるdestructorの挙動を確認

#サンプルコード *class_test.py*

“`Python3:class_test.py
class SampleClass:
num = 0
def __init__(self, number=1):
SampleClass.num +=1 # インスタンスが生成される度に、クラス変数numを1インクリメントする
self.num = number # インスタンス生成時に生成元から受け取った引数numberを、インスタンス変数numに格納する
def __del__(self):
SampleClass.num -=1 # インスタンスを削除する度に、クラス変数numを1デクリメントする
print(“このインスタンスを削除しました”)

“`

###上記のスクリプトファイルを格納したディレクトリと同じ階層で、Python3を起動

“`Python3:Terminal
$ ls
class_test.py
$ cat class_test.py
class SampleCl

元記事を表示

blender, python, らせん階段

らせん状にキューブを並べて照明当ててカメラ回そう、という思いつきで、作りました。
全体で124行あって、そのうちキューブを並べるのは20行くらい。照明部分とカメラ部分は他で作ったものの再利用です。もっと階段に見えるように改良が必要な感じがします。
動画1秒はtwitterで[この動画](https://mobile.twitter.com/naohiko7/status/1327607226660397056)です。
![bph38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/3a0f6546-6275-3aaf-2aba-2c1e9c485cc0.png)

“`python3
# nh38 ==5階建ラセン。2020.11.14
import bpy
import math
# ========= DELETE ALL mesh, light, camera, みな削除する2行 =========
for item in bpy.data.objects:
bpy.data.

元記事を表示

Djangoのtemplateで演算処理を行う方法

##はじめに
django-mathfiltersというモジュールを利用することでテンプレート上での演算処理ができるようになります。この記事では、その実装方法について紹介します。

##参考
[django-mathfilters · PyPI](https://pypi.org/project/django-mathfilters/)

##環境
Python(3.6.2)
Django(2.1.7)

##インストール方法

### django-mathfiltersをインストール

“`python
pip install django-mathfilters
“`

### mathfiltersをINSTALLED_APPSに追加

“`python:settings.py
# Application definition

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.

元記事を表示

DjangoでRailsのhelperのような機能を実装する方法

##はじめに
この記事はDjangoで初めてアプリを作る際に、Railsのhelperのような機能がないか調べた際の個人的メモです。

##環境
Python(3.6.2)
Django(2.1.7)

##カスタムテンプレートフィルタ
Railsのhelperはhelper内で定義したメソッドをview側で呼び出すことができます。Djangoでも同じように別ファイルで定義したメソッドをtemplate側で呼び出せないか調べたところ、カスタムテンプレートフィルタを作成することで実現できるようです。

##実装方法
以下の手順で、カスタムテンプレートフィルタを作成できます。

###1. templatetags というディレクトリを作成
カスタムフィルタを導入したいテンプレートのアプリディレクトリ内にtemplatetagsというディレクトリ を作成します。

###2. templatetagsに \_\_init__.py を設置
templatetagsディレクトリ内で作成するファイルをモジュール化するために\_\_init__.pyを設置します。

###3. temp

元記事を表示

[Django]未ログインユーザーをログインページにリダイレクトさせる方法

##環境
Python(3.6.2)
Django(2.1.7)

##実装方法
まず下記のモジュールを各アプリのview.pyにインポートします

“`python:view.py
from django.contrib.auth.mixins import LoginRequiredMixin
“`

ログインが必須となるページの表示に関わるクラスに下記のように記載します。

“`python:view.py
class MypageView(LoginRequiredMixin, generic.ListView):
template_name = ‘index.html’

“`
LoginRequiredMixinは必ず__第一引数に指定__してください。そうしないとログインページにリダイレクトされません。

settings.pyにログインしていない場合のリダイレクト先(ログインページ)を指定します。

“`python:settings.py
LOGIN_URL = ‘/accounts/login/’
“`

これで完了

元記事を表示

Python3でwordcloudを行うスクリプトファイル一式

#資源配置構成

“`bash:Terminal
$ tree
├── const.py
└── word_cloud.py

1 directory, 2 files
“`

##( 定数定義スクリプト )

####*stop_words*の語句リストは、以下を参考にさせていただきました。

・ [PythonでWordCloudを作成してみました](https://mmtomitomimm.blogspot.com/2018/12/word-cloud.html)

“`Python3:const.py
fpath = “/Library/Fonts//ヒラギノ丸ゴ ProN W4.ttc”
stop_words = [‘てる’, ‘いる’, ‘なる’, ‘れる’,’する’, ‘ある’, ‘こと’, ‘これ’, ‘さん’, ‘して’, ‘くれる’, ‘やる’, ‘くださる’,
‘そう’, ‘せる’, ‘した’, ‘思う’, ‘それ’, ‘ここ’, ‘ちゃん’, ‘くん’, ”, ‘て’, ‘に’, ‘を’, ‘は’, ‘の’, ‘が’,

元記事を表示

selfの持つ意味

selfがないと、、、ローカル変数(関数内部で初期化される変数)と区別ができなくなる。

“`
class Sample:
num = 100
def show_num(self):
num = 200
print(self.num)
print(num)

a= Sample()
a.show_num()
“`
出力は以下の通り

“`
>>>100
>>>200
“`

print(self.num)とprint(num)でうまく区別されているということになります。

元記事を表示

Import Error: libffi.so.6: cannot open shared object file: No such file or directory

# TL;DR
ファイル`libffi.so.6`がimportできなかったことにより、Jupyter notebookの起動に失敗したときの解決法です。私の環境では`pyenv`でpythonのversion管理を行っていたので、同様の管理をしている方向けです。

## Error
“`
% jupyter notebook
Import Error: libffi.so.6: cannot open shared object file: No such file or directory
“`

## 解決法
こちら[^1]より、

“`
% pyenv version
i.j.k(set by $HOME/.pyenv/versions/i.j.k)
% pyenv install i.j.k
Installed Python-i.j.k to $HOME/.pyenv/versions/i.j.k
“`
と使用していたversionのPythonをインストールし直せば良いです。これで起動できるようになっている筈です。

[^1]: [Pipenv install fa

元記事を表示

Djangoの開発開始手順を簡潔にまとめてみた

### Djangoの開発開始手順を簡潔にまとめてみた
これまで数十個のプロダクトをDjangoで作ってきましたが、
実際に開発を開始する手順はだいたい同じなので、今回簡潔にまとめてみました。

**開発開始フロー**

1. フォルダを作成
2. 仮想環境を作る
3. Djangoをインストールする
4. プロジェクトを作成する
5. アプリケーションを登録する
6. settings.pyで基本設定を行う
7. 基本実装を行なっていく。

といった流れです。

#### フォルダを作成

まずはターミナルからプロジェクト用ディレクトリを作成します。

“`.sh

mkdir sample_project
cd sample_project

“`

#### 仮想環境を作る

次に仮想環境を作ります。

“`.sh

virtualenv myvenv
source myvenv/bin/activate

“`

#### Djangoをインストール

Djangoをインストールします。
postgreSQLを使うので、psycopg2-binaryもインストールします

元記事を表示

【Tips編】集計からダッシュボードの作成まで一本化!PythonとDashによるデータ可視化アプリ開発 〜様々なグラフを作成する〜

本記事は、2020年10月16日に作成されました。

**[解説動画はこちら](https://youtu.be/PjllVlL4kk8)**

#はじめに
マーケティングリサーチプラットフォームを提供している株式会社マーケティングアプリケーションズの今井です。

弊社では、Dashに関した内容を、基礎編、Tips編、実践編の3つに分けてQiitaで投稿していきます。

**Tips編(本記事)**
バブルチャート、複合グラフ、帯グラフ、レーダーチャートなど様々なグラフの可視化や、グラフをより見やすく、かつわかりやすくするための応用的な手法を紹介します。
サンプルを動かしている動画はこちらです。
![dash_tips_python_movie.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/790578/cae786e4-9fc7-ca48-0302-fd4be08a8406.gif)

**[ソースコードはこちら](https://github.com/MappsProjects-User/da

元記事を表示

pythonのopenでチルダ(~)で始まるパスを指定したら行方不明になった話

“`python
path = ‘~/.config/remind_task/tasks.yml’
dir_name = os.path.dirname(path)
os.makedirs(dir_name, exist_ok=True) # 上位ディレクトリが存在しなければ掘る
with open(path, mode=”w”) as f:
f.write(“hoge”)
“`

このようにファイルを開きファイルを作成するとホームディレクトリの`.config/remind_task/tasks.yml`にファイルが作成されると思ってしまう。
上のコードを実行するとファイルは作成される。しかし無い。

“`shell
> cat ~/.config/remind_task/tasks.yml
cat: /Users/atu/.config/remind_task/tasks.yml: No such file or directory
“`

しかしファイルは作成されている。どこにあるのか探し回った結果、カレントディレクトリに作られていた。
この場合は`/Use

元記事を表示

レポート(機械学習)

# **機械学習とは**

> コンピュータープログラムは、タスクTを性能指標Pで測定し、その性能が経験Eにより改善される場合、タスクTおよび性能指標Pに関して経験Eから学習すると言われる(トム・ミッチェル 1997)

・あるコンピュータープログラムにデータを入力しタスクTを解かせるとする
・未知データを入れると出力Y1が出る
・出力Y1を性能指標Pで測ることが出来る
・更に新しいデータを入力し出力Y2を出す
・性能指標Pにより測定した際、Y2がY1より改善されていた場合、このコンピュータープログラムは学習したと言える

# **線形回帰**

1.**回帰問題**

* 説明変数(入力)
$$ x=(x_1, x_2, ・・・,x_m)^T \in ℝ^m$$
* 目的変数(出力)
$$ y \in ℝ^1$$

2.**線形回帰モデル**

* 回帰問題を解くための機械学習モデルの一つ
* 教師あり学習
* 入力とm次元パラメータの線型結合を出力するモデル
* 予測値にはハットを付ける(教師データのyと区別)

**教師データ**
$$ {(x_i, y_i) ;

元記事を表示

pandas_datareaderのインストール方法と使い方について【Python】

この記事では、
pandas_datareaderのインストール方法と使い方について
を書いていきます。

##pandas_datareaderとは
pandas_datareaderはPythonのライブラリで、経済データや金融商品の価格データが取ることができます。

pandasという名が入っているので、pandasと共に入ってそうですが(昔は入っていたような)、別モンになっています。Anacondaでも入っておらず、インストールしないといけません。
Pythonのライブラリpandas_datareaderでデータを取得する – Pythonと本と子供と雑談と

ライブラリ↓
pandas-datareader — pandas-datareader 0.9.0rc1+2.g

元記事を表示

【Python】1つ上の階層のモジュールをimport

mydir
└ parent.py
  └ child.py

といったフォルダ構造にて,child.pyからparent.pyをimportする方法

“`child.py

import sys
import pathlib

# ひとつ上の階層の絶対パスを取得
parent_dir = str(pathlib.Path(__file__).parent.parent.resolve())

# モジュール検索パスに,ひとつ上の階層の絶対パスを追加
sys.path.append(parent_dir)

import parent

“`

元記事を表示

Azure VM の Ubuntu 20.04(LTS) で Python3 と MongoDB を利用する(ホロライブの動画配信予定を収集 その2の続き)

## はじめに

前回([https://qiita.com/kerobot/items/fa728f665d559b969e1c]())は、ホロライブの配信予定や動画情報をホロジュールと Youtube から収集した情報を MongoDB に登録できるようにしました。
今回は、一通りの仕組みを Azure VM の Ubuntu に配置して定期的に実行されるようにしてみます。

これまで Windows 10 で構築していた仕組み、Poetry + pyenv + Python3 + WebDriver + MongoDB を Azure VM の Ubuntu に導入して、cron で定期的に実行します。

## 最終的にやりたいこと

ここ最近、毎日のように閲覧している バーチャル YouTuber プロダクション「ホロライブ」などの、動画配信予定を定期的にデータベースに格納し、それを Web API で参照して閲覧する Android アプリを作りたい。

1. 動画配信予定を収集するためのプログラムの作成(完了)
2. 収集した動画配信予定を格納するためのデータベースの作成と

元記事を表示

Pipenvでpkg_resources.VersionConflictが出た。

# 動作環境
– WSL Ubuntu 18.04
– pipenv 2020.6.2
– python 3.7.4

# 起きたこと
`pipenv install`したときにパッケージのインストールはできるものの`Pipfile.lock`が更新されなくなった。

“`
(project) user@LAPTOP:~/project$ pipenv update
Running $ pipenv lock then $ pipenv sync.
Locking [dev-packages] dependencies…
Building requirements…
Resolving dependencies…
✘ Locking Failed!
Traceback (most recent call last):
File “/home/user/.pyenv/versions/3.7.4/lib/python3.7/site-packages/pipenv/resolver.py”, line 807, in
main()
File

元記事を表示

Redis の WebAPI (Bottle)

こちらで定めた仕様を満たすサーバーサイドのプログラムです。
[Redis の WebAPI を作成](https://qiita.com/ekzemplaro/items/1746b31beef382023f2d)

“`py:bottle_redis.py
#! /usr/bin/python
#
# bottle_redis.py
#
# Nov/13/2020
#
# ——————————————————–
from bottle import route, run, post, request
import redis
import json
import sys
# ——————————————————–
@post(‘/read’)
def read():
key = request.forms.get(‘key’)

json_str = “”
try:
rr = redis.Redis(host=’lo

元記事を表示

ロケーション名を入力すると、施設の種類や住所etc.を返すGeocodingツール

#__(コード)__ *Python3*

“`Python3:loc_geocoding.py
# coding: utf-8
import time, argparse, datetime
from pprint import pprint
import pandas as pd
import numpy as np

# コマンドライン引数を受け取る
parser = argparse.ArgumentParser()

# コマンドライン引数を1つだけ受け取る
parser.add_argument(‘-loc’, ‘–location_name’, default=’東京駅’, help=’興味のある場所または施設の名称を入力して下さい。’)
args = parser.parse_args()
location = str(args.location_name)

print(“\n\n入力されたロケーション名: “, args.location_name, “\n”)

import geocoder

data = geocoder.osm(location,

元記事を表示

【Python】iTunesで聞いている曲のジャケットをSlackのプロフィール画像にする

## 概要

会社のSlackのプロフィール画像いつも決め兼ねていて,
なんか面白いことできないかなぁと思った時に
よく作業とか集中してやるときにMacでAppleMusicで音楽聞いているので
そのジャケットの画像をプロフィール画像にできたら面白そう!って思って始めたのがことの発端
できればステータスでNowPlaying
{曲名}/{アーティスト名}とかできたら
会社の人に「この人この曲聞くんだ!」とか「こんなアーティスト聞くんだ!」ってなって話のネタになりそうだなぁ

## 環境

python3系
Slackアカウント
iTunes

## iTunes聞いてる曲の情報を取得する

こちらに関しては以前書いた記事を参考に環境構築してください
[【Python】iTunesで聞いてる曲の情報を取得する](https://qiita.com/da-sugi/items/976fe8b8f9b841ed225f)

環境構築できたら追加で画像を一時的に保存するディレクトリを作成してください

“`bash
$ mkdir downloads
“`
## 大まかなシステム概要

元記事を表示

OTHERカテゴリの最新記事