Python関連のことを調べてみた2021年01月23日

Python関連のことを調べてみた2021年01月23日
目次

[Python pandas]複数のcolumnを参照して、rollingでapplyしたい。

# はじめに

 Pythonのpanadasで、移動平均などを計算するときに利用するときには、窓関数を計算するrollingメソッドを利用します。rollingメソッドを使って、meanなどのデフォルトで用意されている計算以外を行う場合は、applyメソッドで、独自定義した関数を指定します。その時に複数のcolumnが関連した計算をしたいことがあるのですが、rollingメソッドは、columnごとで計算をするので、単純には複数のcolumnを参照した計算を行うことができません。

 この記事は、rollingメソッドを使って、複数のcolumnが関連する計算方法についてのメモを記します。

# 環境

– Windows 10 Home
– Python(3.7.6)
– Pandas(1.2.1)

# 複数のcolumnを参照する方法

  [padasの説明](https://pandas.pydata.org/docs/reference/api/pandas.core.window.rolling.Rolling.apply.html)では、独自関数の引数では、ndarr

元記事を表示

[Python] Outlookでメール作成

# 初めに
Pythonを用いたOutlookでのメール作成を実施する。
以下の環境で実施した。

|||
|—|—|
|os|windows|
|python|3.7.1|
|python-redmine|2.3.0|
|anaconda|4.8.5|

# インストール

anaconda環境であれば、デフォルトでインストール済み。
インストールに関するメモを記載する。

“`bash

conda install pywin32
“`

# mailの作成

ライブラリを用いてメールを作成する。
Outlookを用いたMailItemオブジェクトは以下を参照する。
https://docs.microsoft.com/ja-jp/office/vba/api/outlook.mailitem

“` python

import win32com.client

# Outlookのmailオブジェクト設定
outlook = win32com.client.Dispatch(‘Outlook.Application’)
objMail= outlook.Creat

元記事を表示

【Python】【エラー】ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

## 概要
* エラーが出たので対処をする

## 事象
* 抜粋

“`
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
“`

* 全体

“`
$ pip3 install -r requirements.txt
~~
ERROR: Command errored out with exit status 1:
command: /home/sample/work/venv/bin/python3.6 -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-pnhw5w4t/psycopg2_e6366d5cdcc146ac8944e7983c5fb5ca/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-pnhw5w4t/psycopg2_e6366

元記事を表示

全力回避フラグちゃん!の動画情報を取得してみよう(Videos リソース)

# はじめに

今まで書いた記事はこちら↓↓
– [「全力回避フラグちゃん!」チャンネルの動画をグラフ化するとどうなるのか?【Python】【グラフ化】](https://qiita.com/mypsychology0/items/7f5dace26c4c375754e5)
– [全力回避フラグちゃん! の動画再生数の分布を調べてみた【Python】【グラフ化】](https://qiita.com/mypsychology0/items/1844f675717025970325)
– [全力回避フラグちゃん!の動画の再生数と評価/コメント数をグラフにしたらどうなるのか?【Python】【グラフ化】](https://qiita.com/mypsychology0/items/409e0597509e568b60aa)
– [全力回避フラグちゃん!で少しわかるYouTube Data API Channels リソースから取得できる主な情報](https://qiita.com/mypsychology0/items/f161fef45ee6a02ef9fa)
– [全力回避フラグち

元記事を表示

Cloud Functions Pythonを使ったローカル開発環境とデプロイ方法

# Cloud Functions Pythonを使ったローカル開発環境とデプロイ方法

## はじめに

最初に毎回、Functionsにデプロイして実行するのは手間なのでローカル実行できるようにする
function-frameworkをインストールしローカル実行する
その後、Cloud Functionsにデプロイする

“`
$ pip install functions-framework
“`

## HTTPサンプル作成

main.py 作成

“`
def sample_http(request):
return “sample”
“`

main.py ディレクトリに移動
下記functions-frameworkコマンド実行で `localhost:8080` がFunctionsの呼び出し元になる

“`
$ functions-framework –target sample_http –signature-type=http –port=8080 –debug
* Serving Flask app “sample” (lazy

元記事を表示

【Python】ハレー彗星、惑星、準惑星の座標計算を行い、tkinterとmatplotlibを用いて三次元座標をアニメーションで表示するプログラムの作成

#matplotlibを用いた動作画面
###ハレー彗星
![Peek 2021-01-22 23-04.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641917/106e733a-77d7-a3fe-1699-9cb8a5622b1f.gif)
###惑星(水星、金星、地球、火星、木星、土星)
![Peek 2021-01-23 02-38.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641917/94aed702-9f69-eedb-f8ea-b66c40726151.gif)
#はじめに
 本文は筆者(プログラミング初心者)の個人的なプログラム制作について、得られた知見、手法を簡単にまとめた物です。学術的な正しさを保証するものではありません。
####プログラム概要
 惑星(Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune)、準惑星(Pluto,Cer

元記事を表示

自然言語処理のかさ増し手法 Easy Data Augmentation の日本語版を実装する

# Easy Data Augmentationとは
こちらの論文で提案されている、文章のかさ増し手法です。
[EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks](https://arxiv.org/abs/1901.11196)
似たようなデータを生成してデータをかさ増しすることでモデルの精度向上を図るAugmentationは画像認識などではお馴染みですが、その自然言語版となります。
具体的には、下記の4つの手法を用いて文章を変換することで類似する文章を生成します。

| 手法 | 概要|
|:———|:——-|:——-:|
| Synonym replacement| ランダムに単語を同義語でn個置き換える(ストップワードは除く)|
| Random deletion| ランダムに単語を同義語で確率pで削除する |
| Random swap| ランダムに単語の場所をn回入れ替える|
|

元記事を表示

setup.pyのないGitHubリポジトリからライブラリをimportする方法

Pythonでライブラリをインストールするとき一番楽な方法は`pip install`ですが、これは開発者がライブラリをPyPIに登録している必要があります。

GitHubのリポジトリから直接インストールする場合は`pip install git+`が使えますがこれも開発者が`setup.py`を用意している必要があります。

上記以外の場面でGitHubのライブラリを使いたい時は、以下のようにします。

## 1. ローカルでライブラリが格納されている場所を調べる

“` python
import numpy
numpy.__file__

# /usr/local/lib/python3.6/dist-packages/numpy/__init__.py
“`

適当なライブラリを使ってライブラリが格納されている場所を調べます。この場合`/usr/local/lib/python3.6/dist-packages/`にライブラリが格納されています。

## 2. GitHubリポジトリをクローンする

以下のようにして上記で調べたライブラリが格納されている場所に、目的のGi

元記事を表示

VBAユーザがPython・Rを使ってみた:数学関数

# はじめに

機械学習の勉強を始めたVBAユーザです。
備忘録としてPython・Rの文法をVBAと比較しながらまとめていきたいと思います。

**目次**

– [数学関数](#数学関数)
– [丸めと整数化](#丸めと整数化)
– [丸め](#丸め)
– [整数化](#整数化)
– [初等関数](#初等関数)
– [符号と絶対値](#符号と絶対値)
– [べき乗と平方根](#べき乗と平方根)
– [指数関数と対数関数](#指数関数と対数関数)
– [三角関数と逆三角関数](#三角関数と逆三角関数)
– [双曲線関数と逆双曲線関数](#双曲線関数と逆双曲線関数)
– [数学定数](#数学定数)
– [数ベクトル](#数ベクトル)

– [まとめ](#まとめ)
– [一覧](#一覧)
– [プログラム全体](#プログラム全体)

# 数学関数
今回は数学関数についてまとます。

**Python**
Pythonでは、[標準ライブラリ](https://docs.python.org/j

元記事を表示

yukicoder contest 279 (Zelkova and Cherry) 参戦記

# yukicoder contest 279 (Zelkova and Cherry) 参戦記

事前にググって Zelkova が欅なのは分かってたが、問題タイトルを見るまで欅坂だとは分からなかった(名前が変わったことを知らなかった).

## [E 1362 [Zelkova 8th Tune] Black Sheep](https://yukicoder.me/problems/no/1362)

書くだけ. yukicoder でこんなに簡単な問題出るの珍しい. 辞書かなんかで素直に出現数を集計して、出現数が1の文字を確認して、もう一回スキャンして位置を確認すれば良い.

“`python
from collections import Counter

S = input()

c = Counter(S)
a = [k for k in c if c[k] == 1][0]
print(S.index(a) + 1, a)
“`

## [C 1360 [Zelkova 4th Tune] 協和音](https://yukicoder.me/problems/no/1

元記事を表示

【Python】それぞれのオブジェクトがリストを持つ(共有しないようにする)には?

Python初学者です!

とある教材のコード課題を解いていてなかなか理解できなかったので、記事にすることにしました。

頑張って理解できているだけの用語と知識で言語化してみました。

**もし、説明でおかしなところや理解がまだまだ浅い部分がありましたらつよつよの皆さんよりご指摘いただけると幸いです><!!** ## 使用環境 macOS BigSur バージョン11.1 Google Colaboratory ## 課題 というわけで早速、その課題です。 ***Q. 次のクラスはバグを持っている。*** ***複数インスタンスを行った場合addメソッドを呼び出すと、それぞれのオブジェクトにリストが共有されている。*** ***これをデバッグし、正常に動作させよ。*** ```py class Sample: li = [] def __init__(self, name): self.name = name def add(self, name): self.li.append(name) a = Sample('t

元記事を表示

【2】Django の管理画面からアプリケーションのデータベース管理をする

## 概要
* Docker-composoe + Django環境で作業環境を整えます。
* Djangoは専用の管理画面からデータベースの操作(作成や編集など)が行えます。
* つまりPHPMyAdminなどが不要!!

## 環境
* Docker + Docker-compose が利用できること。
* Python3.6
* Django3.1(最新)

## 前提
* [Docker-compose + Django + MySQL + Nginx + uwsgi を使った環境の初期設定](https://qiita.com/muneki/items/55daf41e925a969aa5b5) が完了していること
* djangoが起動中である
* データベースへアクセスできる
* 管理画面へアクセスできる
* または、同等の環境であること

## 手順
### アプリケーションの作成
* アプリケーションの作成

“`
$ docker-compose exec django manage.py sample
“`

### コンフィグ

元記事を表示

Sarsa、Actor-Critic法の解説および倒立振子問題を解く

# はじめに
Q学習以外のTD学習であるSarsa、Actor-Critic法を紹介していく。Q学習については[この記事](https://qiita.com/KokiSakano/items/956c982d7c6844d99dee)、倒立振子問題については[この記事](https://qiita.com/KokiSakano/items/c8b92640b36b2ef21dbf)で紹介した。

# 理論
## Sarsa(State-Action-Reward-State-Action)
SarsaはQ学習でQ値を更新する部分を少し変更した(実装の面では似た)理論である。具体的には以下の通りである。
Q学習
$$Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha(r_{t+1}+\gamma \max_{a_{t+1}}Q(s_{t+1},a_{t+1})-Q(s_t,a_t))$$
Sarsa$$Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha(r_{t+1}+\gamma Q(s_{t+1},a_{t+1})-

元記事を表示

Pythonで学ぶアルゴリズム 第20弾:並べ替え(マージソート)

# #Pythonで学ぶアルゴリズム< ヒープソート >

##はじめに
基本的なアルゴリズムをPythonで実装し,アルゴリズムの理解を深める.
その第20弾としてマージソートを扱う.

##マージソート
マージソートはまず,リストを順に半分ずつにしてバラバラにする.そのイメージ図を次に示す.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/061b1736-1ba4-853d-0f91-fcd09d5ece6b.png)
上図の最下層,つまりバラバラになったものを次は,逆に統合していく.このときに大きさを比較しながら統合していくことで,すべての要素が再構築されるときには並べ替えられた状態になっているという原理である.そのイメージ図を次に示す.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/951300/f7dbdb2d-d31e-cd16-e2da-39a54d984e72

元記事を表示

Practical Guide to Wavelet Analysis in Python

以前、wavelet解析について[別の場所](https://oceansciencehack.blogspot.com/2014/11/wavelet.html)に書いた。質問を受けた事を機会に[githubにコードを上げる](https://github.com/tmiyama/WaveletAnalysis)と共に、ここに内容を再録する。


[Torrence and Compo [1998]](http://dx.doi.org/10.1175/1520-0477%281998%29079%3C0061%3AAPGTWA%3E2.0.CO%3B2)のwavelet解析手法と、[そのツール](http://paos.colorado.edu/research/wavelets/)は我々の分野でよく使われる。私も[Miyama and Miyazawa [2014]](https://link.springer.com/article/10.1007/s10236-014-0701-1)をで使用している。その関連した発表をAOGS 2014でした時に、Torrence an

元記事を表示

いろいろな最適化アルゴリズムを比較してみた

# はじめに

最適化アルゴリズムの実装シリーズです。
まずは[概要](https://qiita.com/pocokhc/items/07b698cc426cadb3a64e)を見てください。

コードは[github](https://github.com/pocokhc/metaheuristics)にあります。

# 比較について

比較はアルゴリズムの優劣をつける事ではなく、アルゴリズム毎の解きやすい問題・解きにくい問題の傾向を把握するために実施しています。
最適化アルゴリズムには[ノーフリーランチ定理](https://ja.wikipedia.org/wiki/%E3%83%8E%E3%83%BC%E3%83%95%E3%83%AA%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%81%E5%AE%9A%E7%90%86)という考えがあり、汎用的ではありますが決して万能ではありません。
ですのでこの比較はあくまで参考程度に見てください。

# 結果

各問題の詳細に関しては[問題編](https://qiita.com/pocokhc/items

元記事を表示

Python でのスクレイピング 入門

## はじめに
今PythonでWebページのスクレイピングの勉強をしているので、スクレイピングをする際の必要不可欠な部分をまとめました。自分と同じように皆さんがPythonでスクレイピングをする時の参考になれば幸いです。

## 対象者
– Python初心者でPythonでスクレイピングをしたい人
– Pythonのスクレイピングの書き方を忘れた人

## 自動で Web ブラウザ(GoogleChrome)を起動

#### webdriver.Chrome()

“`bash:bash
# chromedriverをインストール
$ brew install –cask chromedriver
“`

“`python:python
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(“指定のurl”)
“`

## 自動でテキスト入力

####

“`python:python
# HTMLのid属性
ele = driver.find_element_by_id(“id

元記事を表示

Dockerを使って爆速でGPUを設定する方法

#はじめに
機械学習をやろうと思ったら、まずやってくるのが **GPUの設定** ですよね。ドライバインストールしてCUDAとcudnnインストールして、、、。**これが本当にめんどくさい!**そんな方には **Dockerを用いた設定をオススメ**します。マジで**爆速**です。しかも、PyTorchやTFによって環境を別で設定できますし、使わなくなったらその環境をすぐに削除できます。ひと通りカバーした記事があまりなかったので残しておきます。困っている方の参考になればと思います。

*ミスがありましたら、ぜひご指摘お願いします

#手順

####1. NVIDIA driver のインストール
####2. Docker のインストール
####3. NVIDIA container toolkit のインストール

#1. NVIDIA Driverのインストール

“`
$ nvidia-smi
“`

“`
$ sudo apt-get –purge remove nvidia-*
$ sudo apt autoremove
“`

“`
$ s

元記事を表示

重複する行を順序を保ったまま整理したい

## 経緯

`.gitignore` が秘伝のタレ状態になると、対象が重複することがある。

“`.gitignore
### C ###
# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

### C++ ###
# Prerequisites
*.d # <- 重複 # Compiled Object files *.slo *.lo *.o # <- 重複 *.obj # <- 重複 # Precompiled Headers *.gch *.pch # Linker files *.ilk # <- 重複 ``` このせいで修正したつもりが「あれ、 `.gitignore` が反映されないな」みたいな時間の無駄が発生する。 ググると、「ソートしてから `(^.*$)(\n(^\1$)){1,}` で検索!」みたいな情報が出てくるんだが、 そうやって消すと順序が破壊されて「この `*.map` って何のために無視してるんだっけ

元記事を表示

Django の Form Class でセッション情報を利用する

# 概要

フォームのバリデーションを行う際にセッション情報を使いたかったのですが、Django のフォームクラスではリクエストオブジェクトを参照することができません。
セッション情報をコンテキストとしてフォームの hidden 属性で渡したりできますが、、いかんせん格好悪い。

ということで、フォームクラスのメソッドをオーバーライドしてリクエストオブジェクトを渡す方法を紹介します。

動作環境は Python 3.8, Django 3.1.1 です。

# forms.py

フォームクラスはデフォルトのキーワード引数として initial や data といったパラメータしか受け取れません。
なので、`__init__` メソッドをオーバーライドして、フォームのインスタンス生成時に request パラメータを引数として受け取るようにします。
https://github.com/django/django/blob/master/django/forms/forms.py#L64

“`python:forms.py
class MyForm(forms.form):

元記事を表示

OTHERカテゴリの最新記事