- 1. 【オンライン開催】みんなのPython勉強会#55 ざっくりメモ
- 2. Pythonのいろんなfor文まとめ
- 3. Django2.xからDjango3.xでの変更点(かもしれない)の報告:静的ファイルのタグ書き換え・HttpResponseRedirectの指定方法
- 4. Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
- 5. [Python]セミラグランジュ法のメソッド
- 6. エクセルにスクショ貼り付けの自動化プログラムを作ったよ
- 7. DataFrameから、1つの列をDataFrameで取得する
- 8. 言語処理100本ノック-51:単語の切り出し
- 9. Paizaのスキルチェックの例題のデバッグをJupyterとかのローカル環境でやるときの入力の手間を省きたい【Python】
- 10. 4.円のパラメータをニューラルネットワークで!
- 11. 【Python】0で穴埋めするときに必要な桁数を計算する【メモ書き】
- 12. 交絡因子による影響を排除したデータ処理(理論編)
- 13. 【Python】MAEとRMSEの計算方法
- 14. 【Python】YouTubeの動画URLから動画IDを取り出す【メモ書き】
- 15. 超インテリがクラスを理解できなかった理由
- 16. リアクションしたら翻訳してくれるDiscordのbotをPythonで作った
- 17. 学習記録(3日目)#CSSセレクターの記述法#BeautifulSoupによるスクレイピング
- 18. Kerasでユーザーからのアノテーション情報を受け入れるネットワークを記述する
- 19. BlenderのPythonで5秒まで数えてストップするスクリプト
- 20. pandas rolling()メソッドの挙動
【オンライン開催】みんなのPython勉強会#55 ざっくりメモ
## 概要
Python 愛好家です。みんなのPython勉強会#55 の概要と個人的感想を書きます。
## 実施概要
詳細はこちら。
– [【オンライン開催】みんなのPython勉強会#55](https://startpython.connpass.com/event/169696/)
> 新型コロナウィルスの感染が拡大しております。これを受けて、3/11に開催を予定していた本イベントの現地開催(オンサイト開催)を中止し、Youtubeライブ配信を使ったオンライン開催に変更します。当初のプログラムも変更して、StapyコミュニティメンバーによるLT大会とします。
COVID-19 の影響でオンライン開催となってしまった本会でしたが、チャット欄では残念どころか「地方でも参加できた」「チャットだから発言しやすい」と好評だったように見えました。開催者の方々、おつかれさまでした。素敵な会をありがとうございます。
ちなみに LT は lightening talk、短いプレゼンテーションのこと。
## 各ご発表
個人的に興味のあった部分だけ、だいぶサマって書きますことご了承
Pythonのいろんなfor文まとめ
## ■基本形
### i=0始まりでn回回す“`input.py
n = 5
for i in range(n):
print(i)
“`
“`output.py
0
1
2
3
4
“`
### i=xから(y-1)まで
“`input.py
x = 1
y = 4
for i in range(x,y):
print(i)
“`“`output.py
1
2
3
“`## ■文字列
### 一文字ずつ取り出す“`input.py
for char in ‘string’:
print(char)
“`“`output.py
s
t
r
i
n
g
“`## ■リスト型
### 要素1つずつ取り出す“`input.py
list = [‘a’,’b’,’c’]
for a in list:
print(a)
“`“`output.py
a
b
c
“`## ■辞書型
### 要素1つずつ取り出す
“`input.py
dict = {‘key1′:’val1’, ‘key2
Django2.xからDjango3.xでの変更点(かもしれない)の報告:静的ファイルのタグ書き換え・HttpResponseRedirectの指定方法
# 経緯
半年ぶりくらいにDjangoを触ったらバージョンが3になってました。更新速いっ!
で、昔作ったプロジェクトをカスタムしてたらエラーが何個か出たので、変更点っぽいのでDjango扱うかたに有益かもしれないので、共有します。# 環境など
Django==2.0.4
で作ったプロジェクトをカスタムして、
Django==3.0.4
で構築した時の気づきPython==3.6.1 (3.7だとエラーが出てしまう。今後要解析。)
# 1 静的ファイル取り扱いタグが昔の奴が使えなくなっていた
“`
TemplateSyntaxError at /
‘staticfiles’ is not a registered tag library. Must be one of:
“`というエラーが出ました。タグを直すだけで直ります!
“`
このタグを
{% load staticfiles %}↓のように直します
{% load static %}
“`# 2 HttpResponseRedirectの飛ぶ先の指定が変わったかもしれない。
NoRever
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
# 初めに
本記事は元々PDFで作成した研究室内部の資料をMarkdownに無理やり落とし込んだものです.そのため,「無駄に箇条書きされている」,「ヘッダー構成がいまいち」,「Webドキュメントとしては図が多すぎる」等などの問題点があり,「簡潔で分かりやすいQiita記事」とは程遠い状態です.その点についてはご理解下さい.
なお,ここらへんの環境構築の話はすぐに古い情報になってしまい,書かれている通りのやり方ではいずれ通用しなくなる可能性があります.この記事を参照して起こる問題については私は責任を持てませんので,本記事はあくまでも参考としていただき,実際に試すことについては自己責任でお願いいたします.この記事以外にも,同様の内容を解説しているWebページは山ほどありますので,そちらも参照すると良いかもしれません.
# 本記事の目的
– Windowsマシン上で,Anacondaを使わず,VSCode(エディタ)とPython(インタプリタ)のみで,Pythonを実行できる環境の構築を解説
– 有名なPython環境インストーラのAnacondaは使わない
[Python]セミラグランジュ法のメソッド
移流方程式解くプログラムがネット上に少なかったのと、メソッド化されているものは日英で探した時に無かった(もしくはバグってるやつ)ので作りました。
“`python
#https://github.com/christian512/SemiLagPy/blob/master/advection1D.ipynb
#これを参考にした。import numpy as np
import matplotlib.pyplot as pltclass SemiLagrangian1D:
“””
SemiLagrangian scheme for periodic 1D problems.
“””
def __init__(self,x,y,u,dt):
“””
Initizalizes the SemiLagrangian object given initial configuration
x : x positions (must be equidistant)
y : variable
エクセルにスクショ貼り付けの自動化プログラムを作ったよ
###はじめに
こんにちは、rickyです。
皆さんはスクショをエクセルに張り付ける仕事が実在すると思いますか?
私はその日までそんな仕事は都市伝説だと思っていました。
ですが、ついこの前私はその仕事をさせられることになりました。
ただひたすらフォルダから画像をエクセルに張り付ける仕事・・・
そんな時ふと気づきました。
これ、プログラムで自動化できるんじゃ?
調べてみるとエクセルに画像を張り付けるライブラリと、画像のフォルダを読み込み、ファイル名を取得するライブラリがあることがわかりました!
そこで私はプログラムにおこしてみることにしました。###概要
前提:貼り付ける画像フォルダがすでにあることを前提とします。
今回のソースコードはエクセルのパスと画像フォルダのパスを変数に初期化して実行します。
処理の流れとしては指定したエクセルに接続、シートを末尾に追加し、そのシートに画像ファイルを張り付けます。
またシートの名前の付け方は画像フォルダに従い1-1-1のように3つの数字で表されます。
ちなみに1-1-1_1や1-1-1_2などは1-1-1のシートに一緒に張り付けられます。
処理
DataFrameから、1つの列をDataFrameで取得する
わかりにくいタイトルになってしまいましたが、そのままの記事です。汗
結論的には、
ブラケット(角括弧)によるアクセスにおいて
**ブラケットが1つだとSeries,ブラケットを重ねるとDataFrameとして取り出せます。**“`python
#Seriesで取れる
df[“col”] # df.colも同様#DataFrameで取れる
df[[“col”]]
“`Seriesで取り出したものをDataFrameへ変換することも可能ですが、ブラケットを重ねるのがお手軽です。
複数列を指定して取得する場合は、ブラケットを重ねることが必須となので必ずDataFrameで取れます。
“`python
df[[“col1”, “col2”, “col3”]] #DataFrameで取れる
“`なお、Seriesで取れてしまうことで都合が悪いケースとしては、sklearnの予測モデルにインプットする場合が挙げられます。
1変数でモデルを作るときに、Seriesでインプットすることで次のようなエラーが出力されます。“`python
ValueError: Exp
言語処理100本ノック-51:単語の切り出し
[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)[「第6章: 英語テキストの処理」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch6)の[51本目「単語の切り出し」](http://www.cl.ecei.tohoku.ac.jp/nlp100/#sec51)記録です。
今回は技術的には前回とほとんど変わりません。10行に満たないコードで終わる簡単なノックです。# 参考リンク
|リンク|備考|
|:–|:–|
|[051.単語の切り出し.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/06.%E8%8B%B1%E8%AA%9E%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%E5%87%A6%E7%90%86/051.%E5%8D%98%E8%AA%9E%E3%81%AE%E5%88%87%E3%82%8A%E5%87%BA%E3%81%97.ipynb)|
Paizaのスキルチェックの例題のデバッグをJupyterとかのローカル環境でやるときの入力の手間を省きたい【Python】
###挨拶
本記事が初投稿です。気になったことなどをほそぼそと書いていきたいと思いますのでよろしくおねがいします。#はじめに paizaスキルチェックとは
paizaスキルチェックとは、paiza株式会社が運営する[paiza](https://paiza.jp/)という、IT人材の育成、就活支援を目的としたサイトで受けられるプログラミングのスキルテストです。
ユーザーはこのスキルチェックでクリアできた問題の難易度に応じてランク付けされ、コードを見た企業からスカウトされることもあります。#この記事の目的
**出題例デバッグ時の面倒なコピペ作業からの脱却**
paizaのスキルチェックを含むプログラミングテストの問題にはたいてい例題として入力例と出力例が載っていて、まずはその例題から試しますよね。
paizaの場合、問題画面の最下部からオンライン上で試しに実行して動作を確認できますが、難易度が上がり、コードが長くなってくるとJupyter Notebookなどで小分けにデバックしたくなると思います(少なくとも私はそうなります)。
その際は入力例をコピペして使うことになりますが、
4.円のパラメータをニューラルネットワークで!
#はじめに
シリーズ第4回です。これまで、与えたランダムな数値データから平均値と標準偏差を出力するNN(第2回)、与えた正規分布波形データから、正規分布波形データを作成するのに使用した3つのパラメーターを出力するNN(第3回)を、作成してきました。
今回は、円を描いた二次元の画像データから、円を描くのに使用した4つのパラメーター(円の中心のx座標、y座標、半径、ペンの線の太さ)を出力する畳み込みNN(CNN)を作成します。
画像データは、Objective-Cで作成しました。
#画像データの作成
まずは画像データの作成です。50ピクセルx50ピクセルの円を描いた画像を作成し、ここからピクセルデータを取得し、円を描くのに使用した4つのパラメーターと併せてファイルに書き出します。1件のデータは、カンマ区切りの2504個のデータよりなります。最初の2500個は、0から1までの数値、残り4個は、円の中心のx座標、y座標、半径、円の線の太さです。データの間は改行(\n)で区切ります。データの作成はObjective-CでNSImageクラスを使用しました。
“`4-001.c
/
【Python】0で穴埋めするときに必要な桁数を計算する【メモ書き】
`log`を高校で習ったときに`log`っていつ使うねん!って思ってたら使いどきあったのでメモメモ。
“`python
import mathlist = [1,2,3,4,5,6,7,8,9,10,11]
number_of_val = len(list)
number_of_padding_zero = math.ceil(math.log10(number_of_val))
format_pattern = ‘{:0’+ str(number_of_padding_zero) +’d}’for i,val in enumerate(list):
serial_number = format_pattern.format(i)
print(serial_number)
“`実行結果:
“`
00
01
02
03
04
05
06
07
08
09
10
“`連番でファイル出力するときに0で穴埋め(ゼロパディング)するということを想定。
テスト用なのでコード中の`list`には数字入ってますが、ファイルパスとかが入ってると思ってください。
出力
交絡因子による影響を排除したデータ処理(理論編)
#はじめに
解析データに含まれる交絡因子の排除の方法やz-scoreについて自分なりに図付きで解釈してみました。
記事は[こちら](https://www.aiprogrammers.net/entry/2020/03/12/022158)にまとめました。
(画像をたくさん貼れるので…)
【Python】MAEとRMSEの計算方法
###目的
Pythonを使って平均絶対誤差(Mean Absolute Error:MAE)と二乗平均平方根誤差(Root Mean Squared Error:RMSE)を計算する。記事は[こちら](https://www.aiprogrammers.net/entry/2020/03/09/021517)にまとめました。
【Python】YouTubeの動画URLから動画IDを取り出す【メモ書き】
# まえがき
YouTubeの動画URLを取り出す手法についてはいくつもの記事が上がっているが、「共有」ボタンを押したときに生成される`https://youtu.be/`で始まる短縮URLへの対応や、URLクエリパラメータ(例えば時間を指定する`t=15`や短縮URLからの転送を示す`feature=youtu.be`など)を含む場合は考慮されてないものばかりな気がしたのでここにメモとして書いてみる。
ちなみに、再生開始位置を示すYouTubeのURLクエリパラメータ`t`は、
`https://youtu.be/r4Mkv-q4NmQ?t=5437`や
`https://youtu.be/r4Mkv-q4NmQ?t=5437s`のように
全て秒数で指定するのはもちろん、
`https://youtu.be/r4Mkv-q4NmQ?t=1h30m37s`のように
`◯h△m□s`とすると「◯時間△分□秒」から再生開始するURLになるぞ!
※もちろん、`◯h`を省略して`△m□s`とするのも可。尚、この記事内のYouTubeのURLは基本的に私の投稿動画やチャン
超インテリがクラスを理解できなかった理由
私の職場は 3 月から当面のあいだ、原則は在宅勤務となった。新型コロナウイルスの感染拡大防止のせいだ。職場でないとできない仕事もあるから、仕事の量は減る。時間ができたから Qiita に記事を書いて、あとで役に立つものを残そうと考えている。
#Python の勉強会が失敗した原因
何年か前、職場で週 1 回の Python の勉強会を主催した。私なんかよりはるかに頭のいい方たちが数人出席してくれた。これからは Python が流行るから先回りしてスキルを身につけておこう、というクールな企画になるはずだった。だが、うまくいかなかった。最大の原因はクラスの理解が難しいことだった。世界一のスパコン・京を使う超インテリも、クラスの概念を理解できなかったのである。
#クラスを説明しきれなかった無力感
まず、古い言語を使ったことがある人はクラスの理解に苦労するようだった。この勉強会に出席した人は、FORTRAN77 を使う古参や、学生時代に c 言語の演習を取っただけ、という人たちが多くいた。工学分野には、いまでも FORTRAN を使う人が普通にいるのだ。手続き型の言語をメインにやってき
リアクションしたら翻訳してくれるDiscordのbotをPythonで作った
こんな感じのbot
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391656/146f4d34-6ed2-5036-0591-85e45b7f0884.png)Discordでbotを作る方法は割愛。この辺りを読んで下さい。
[Pythonで実用Discord Bot(discordpy解説)](https://qiita.com/1ntegrale9/items/9d570ef8175cf178468f)## ソースコード
“`python
# インストールした discord.py を読み込む
import discord
from googletrans import Translator# 自分のBotのアクセストークンに置き換えてください
TOKEN = ‘[bot-token]’# 接続に必要なオブジェクトを生成
client = discord.Client()# 起動時に動作する処理
@client.event
async def on_ready
学習記録(3日目)#CSSセレクターの記述法#BeautifulSoupによるスクレイピング
# 学習内容
* CSSセレクターの記述法
* BeautifulSoupによるスクレイピング## CSSセレクターの記述法
以下に10通りのCSSセレクターの記述法を示します。どのCSSセクターも`continents.html`から`Eurasia`の要素を取り出します。~~~HTML:continents.html
- Australia
- NorthAmerica
- SouthAmerica
- Eurasia
- Africa
~~~
~~~Python:sel-continents.py
from bs4 import BeautifulSoup
fp = open(“continents.html”, encoding=”utf-8″)soup = BeautifulSoup(fp, ‘html.parser’)
Kerasでユーザーからのアノテーション情報を受け入れるネットワークを記述する
ユーザーからのアノテーション(重み付け)情報を受けた場合、処理を切り替えるDeep LearningのネットワークモデルをKerasで実装するにはどうすればよいか試行錯誤したので、内容をまとめてみます。
最近はPyTorchでの実装がメインだったので、記述方法の違いに戸惑うところがありました。
Kerasで複雑めなネットワークを記述するにはfunctional APIを使います。
参考:[keras functional APIの使い方メモ のQiitaページ](https://qiita.com/studio_haneya/items/3fcbd7e96b8590bbcd11)Functional APIではkeras.layersで定義される層をつなげていく必要があります。
今回のように独自の処理の層を入れるにはLambdaを使って実装する必要があります。
図のような画像認識タスクを想定したネットワークのコード例を下に示します。
BlenderのPythonで5秒まで数えてストップするスクリプトBlenderのPythonで5秒まで数えてストップするスクリプト
returnで指定した値の秒数ごとに繰り返される自分用メモ
“`
import bpyclass test():
i = 1
def every_seconds(self):
print(self.i)
self.i = self.i + 1if self.i > 5:
return None
else:
return 1.0test = test()
bpy.app.timers.register(test.every_seconds)
“`
参考
https://docs.blender.org/api/current/bpy.app.timers.html
pandas rolling()メソッドの挙動
# はじめに
[Advanced Python(時系列解析)](https://www.amazon.co.jp/%E6%99%82%E7%B3%BB%E5%88%97%E8%A7%A3%E6%9E%90-%E8%87%AA%E5%B7%B1%E5%9B%9E%E5%B8%B0%E5%9E%8B%E3%83%A2%E3%83%87%E3%83%AB%E3%83%BB%E7%8A%B6%E6%85%8B%E7%A9%BA%E9%96%93%E3%83%A2%E3%83%87%E3%83%AB%E3%83%BB%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5-Advanced-%E5%B3%B6%E7%94%B0-%E7%9B%B4%E5%B8%8C/dp/4320125010/ref=pd_aw_sbs_14_4/355-0401449-3667847?_encoding=UTF8&pd_rd_i=4320125010&pd_rd_r=1b383d15-c4b7-4c76-a51b-4defd44ba9e4&pd_rd_w=cfPZQ&pd_rd_wg=atta