- 1. 困ったこと
- 1.1. Flaskについてまとめ6 静的ファイル(HTML,XHTML,JavaScript,CSS)を利用する
- 1.2. Pandas ,pythonコードメモ 7
- 1.3. 『Python2年生 スクレイピングのしくみ』で勉強中(その2)
- 1.4. ろうとるがPythonでWindowsプログラムをつくる
- 1.5. Flaskについてまとめ5 url_forで関数を使って 指定したEndpointの値を確認
- 1.6. 公開!週末研究ノート06 ー 任意の分布からのサンプリング
- 1.7. CTFに初挑戦してみた!
- 1.8. [Python] pptx2md パワーポイントの資料をマークダウンに変換する。
- 1.9. 【Django】forms.pyを使わずに送信データを複数テーブルに保存させる方法
- 1.10. Numpyを使ったデータの扱い方
- 1.11. AtCoderで役立つPythonイディオム集
- 1.12. Pythonの変数変更時の挙動
- 1.13. Pythonで画像をOCRしてテキスト変換する!
- 1.14. BlenderでPythonを実行する方法
- 1.15. 【BOXVIA】ベイズ最適化用GUIアプリケーション
- 1.16. PythonのBlackフォーマッタがVSCodeの拡張機能として利用できるようになった
- 1.17. ONLYOFFICEをPython Appに組み込む方法
- 1.18. Open MPI を用いて PyΤorch によるマルチノード分散学習を行う方法
- 1.19. 有限な無限スクロールページをスクレイピングしたかった
PythonコードをJavaScriptで書き直した時に困ったこと
# 目次
1. [困ったこと](#anchor1)
1. [配列の最後の要素を取り出す方法](#anchor2)
1. [配列のコピー(参照渡しと値渡しの違い)](#anchor3)
1. [参照渡し](#anchor4)
1. [値渡し](#anchor5)
1. [配列へ代入と削除(appendとextendとremove)](#anchor6)
1. [追加](#anchor7)
1. [削除](#anchor8)
1. [配列のfor文(JSにはいくつか書き方がある)](#anchor9)
1. [リスト内に要素が含まれているか](#anchor10)
1. [リストの中身をシャッフルできない(random.shuffle(list)が使えない)](#anchor11)
pythonで書いていたコードをJSに書き直す作業をした時の備忘録。
今後JS(Vue)を使うことが増えると思うので、忘れないように記録しておきます。困ったこと
– Pythonで使えたモジュールがJSでは使えない
Flaskについてまとめ6 静的ファイル(HTML,XHTML,JavaScript,CSS)を利用する
過去の記事はこちらです
https://qiita.com/TaichiEndoh/items/ca306560b928eddfc222
https://qiita.com/TaichiEndoh/items/7b7f82134a0333f8c8b9
https://qiita.com/TaichiEndoh/items/2d010ce586fc07c0a212
https://qiita.com/TaichiEndoh/items/a99dd39060b2345ca4cd
https://qiita.com/TaichiEndoh/items/f2ddbd49cf0417ebc1e9
ubuntu でpython仮想環境を利用し
アプリケーションルートがflaskbook
になるように変化しましたその後テンプレートエンジンを利用しました
テンプレートエンジンはテンプレートと呼ばれる ひな形
と データを合成して成果ドキュメントを出力するソフトウェアですFlaskについてまとめ5では
テンプレートエンジンの if と for文 の使い方について記載しています
Pandas ,pythonコードメモ 7
# 1 この記事は
Pandas ,pythonの各種操作方法をメモする。
| 題名 | リンク |
|:———–|————:|
| 【python】Pandasの使い方 | [LINK](https://qiita.com/NT1123/items/ab1c6dc582684d7d7436) |
| 【python】Pandas2の使い方 | [LINK](https://qiita.com/NT1123/items/24e6b848761f83514720) |
| 【python】Pandas3の使い方 | [LINK](https://qiita.com/NT1123/items/4bd0fa8cc8254b3b651d) |
| 【python】Pandas4の使い方 | [LINK](https://qiita.com/NT1123/items/6e6bcc880aae6f0940ed) |
| 【python】Pandas5の使い方 | [LINK](https://qiita.com/N
『Python2年生 スクレイピングのしくみ』で勉強中(その2)
## この記事について
『Python2年生 スクレイピングのしくみ』(以下、書籍)でPythonを学習する超初心者の記録です。
とりあえず、書籍を最後まで進めたので、その記録として記事を書いています。先に書いておきますと、今回はこれまで以上に内容がないです……
これまで保留にしておいた事項を調べるなどして、ボリュームを増やそうかとも思いましたが、付け焼き刃感があるのでそのままにしました。■ バックナンバー
・[『Python1年生』で勉強中(その1)](https://qiita.com/megrim_q/items/c1417f507e96c1fb7015)
・[『Python1年生』で勉強中(その2)](https://qiita.com/megrim_q/items/333be033e5b4637d0eed)
・[『Python1年生』で勉強中(その3)](https://qiita.com/megrim_q/items/904f83c6a7e8594b7212)
・[『Python2年生 スクレイピングのしくみ』で勉強中(その1)](https://qiita.co
ろうとるがPythonでWindowsプログラムをつくる
# 久しぶりにWindowsプログラム
事情があって、ウン十年ぶりにWindowsプログラムをつくることになった。できるだけトレンディを身につけたく調べていたところ、Python+tkinterでWindowsプログラムを実現できることがわかったので、その記録をここに残すこととした。小生、Pythonは初心者レベル、tkinterは初めてのトライであり、基本的なことも記載。## tkinter
Python上でGUIを実現するもの(ライブラリ)。山のように情報が見つかる。
– [tkinter — Tcl/Tk の Python インターフェース](https://docs.python.org/ja/3/library/tkinter.html)(本家サイト)
– [PythonのTkinterを使ってみる](https://qiita.com/nnahito/items/ad1428a30738b3d93762)## やること
sshでLinuxにログインし、”ls”にてホームディレクトリのファイルやディレクトリの一覧を取得し、”ls -ld”にて選択したファイルまたは
Flaskについてまとめ5 url_forで関数を使って 指定したEndpointの値を確認
過去の記事はこちらです
https://qiita.com/TaichiEndoh/items/ca306560b928eddfc222
https://qiita.com/TaichiEndoh/items/7b7f82134a0333f8c8b9
https://qiita.com/TaichiEndoh/items/2d010ce586fc07c0a212
https://qiita.com/TaichiEndoh/items/a99dd39060b2345ca4cd
ubuntu でpython仮想環境を利用し
アプリケーションルートがflaskbook
になるように変化しましたその後テンプレートエンジンを利用しました
テンプレートエンジンはテンプレートと呼ばれる ひな形
と データを合成して成果ドキュメントを出力するソフトウェアですテンプレートエンジンの if と for文 の使い方について記載していきます
### 変数の値を出力する
変数の値を表示するには{{ }}を使います
render_templateの第2引数以降で
設定したキーワード引数また
公開!週末研究ノート06 ー 任意の分布からのサンプリング
# はじめに ー 週末研究ノートとは?
個人的に研究的な活動をやるにあたり、オープンにしてみたら面白いかもと思い、自分が興味を持っている ざっくりテーマについて、これから、ゆるい週末研究を公開していこうと思います。(有識者の方のアドバイスも、ちょっとというかかなり期待してます!笑)
どこかの権威的な学会やジャーナルなどで発表する予定はないため、万が一、私の記事を利用する際には自己責任でお願いします。そんな人はいないと思いますが、念のため。
# 今回のサマリ (TL; DR)
任意の分布関数からサンプリングする方法を実際に試しました。
# 環境
– Colaboratory
– コードは、[こちら](https://gist.github.com/tkosht/73cd4bf45f102fa1986a2f96c1f02eab)# 今回の週末研究ノート
今回は、任意の分布からサンプリングってできるはずだけど、どうやるんだっけ?を調査し実機で確認しました。
よく確率密度関数とか頑張って計算してるのを見るけど、そこからサンプリングできるイメージがわかないと、何
CTFに初挑戦してみた!
はじめに
===こないだカーネギーメロン大学というところが開催しているpicoCTFというビギナーやキッズ向けのオンラインCTFが開催されていたので参加してみたところ、結構楽しくてゴールデンウィークということもあり、復習がてら一部write up をしてみました!
https://www.picoctf.org/
ちなみにCTFとはコンピュータ・セキュリティやプログラミングの勉強会であり、一般に参加者は、リバースエンジニアリング、フォレンジック、破壊など、最終目標である「フラッグ」を取得するためにできることなら何でも行うことで構成されています。とのことです。
write up では バイナリExploitationの分野だけ書きましたが暗号分野とフォレンジックなどは特に面白くて、picoCTFはビギナー向けの大会ということもあり難易度もちょうどよい感じなので、キッズからプログラミングを学び始めたという方や、セキュリティとかを学び始めた方で、例えばバッファオーバーフローという用語は学んだけど実際にどうやるかわからないという方に特におススメという感想です!
1.basic-fi
[Python] pptx2md パワーポイントの資料をマークダウンに変換する。
# はじめに
ゴールデンウィークの勉強会で登壇する際に作成したパワーポイントを、Qiitaに投稿できるようにMarkdownに変換したくて調べてみました。
# pptx2md
使用したライブラリはこちらです。作者のGithubリポジトリはこちら。
https://github.com/ssine/pptx2md
# Google Colab
Google Colabで使ってみています。GoogleColabについてはたくさん記事があるので調べてみてください。
# pptx2mdの使い方
GoogleColabの初期環境には入っていないので、まずはライブラリのインストールから始めます。
“`python
# ライブラリのインストール
!pip install pptx2md
“`Google Driveへマウントします。これは頻出記述なので覚えておくとよいですね。
“`python
# GoogleDrive のマウント
from google.colab imp
【Django】forms.pyを使わずに送信データを複数テーブルに保存させる方法
以前、1度のフォーム送信で複数テーブルにデータを保存する方法を記事にしたのですが、forms.pyやinlineformset_factory()のようなメソッドは、複雑な実装をする場合に、逆に使い方がややこしくなるなと感じてしまいました。
[【Django】1度のフォーム送信で複数テーブルにデータを保存する方法](https://qiita.com/kim-shun/items/04fdce686c725927d599)
そこで今回、forms.pyを使用せずにフォーム送信データを複数テーブルに保存する方法を考えたので、記事にしたいと思います。
参考にしたのは下記の記事です。[【django】モデルのDBにデータを追加する create() と save()](https://kuma-server.com/create-save/)
[Djangoのget_object_or_404について](https://zenn.dev/gaipoi/articles/ab66a8f91835ce)
[【Django】formの値を取得する方法をたったの1行で解説](https
Numpyを使ったデータの扱い方
# はじめに
データ分析関連の基礎を身に着けようと思って、本を読みながら勉強しているんですが、
手を動かしながらじゃないと全然頭に入らないので、実行結果を整理しながらまとめています。
普段は使う関数だけ調べながら開発してるので、体系的にまとめられている本をみると発見があって勉強になります。Pythonによるデータ分析の教科書
https://www.shoeisha.co.jp/book/detail/9784798158341## 行列の変形
### 次元の変換をする reshape
配列の次元を変換します。要素の数が合わない時はエラーになります。“` python:in
a = np.array([1,2,3,4,5,6,7,8])
print(a.reshape(2,4))
“`“` :out
[[1 2 3 4]
[5 6 7 8]]
“`### 1次元のリストにする ravel flatten
行列の次元を1次元にします。見た目は同じですが、
ravelは参照先を返すのに対して、flattenはコピーを返します。“` python:in
a
AtCoderで役立つPythonイディオム集
# はじめに
[AtCoder](https://atcoder.jp)は、おおよそ週に1回程度プログラミングコンテストが開催されている日本最大規模の競技プログラミングコンテストサイトです。特に初学者には学習コストが比較的小さいためにPythonがおすすめされがちです。
本記事では、Pythonでのコーディングが楽になる、標準ライブラリや組み込み関数によるイディオムを紹介しています。あくまでイディオムを集めたものであり、アルゴリズムのPython実装は取り扱いません。## 頻出度 高
### 逆順にする
“`python
L = [1, 2, 3, 4]
reversed_L = L[::-1]
print(reversed_L)>> [4, 3, 2, 1]
“`#### 解説
スライスを利用することで、スタート、エンド、ステップを指定することができますが、ステップに負数を指定することで、逆順を実現できます。また、以下のコードはほぼ等価です。
“`python
list(reversed(L))
<=> L[::-1]
“`### リストの連続する2つの
Pythonの変数変更時の挙動
# Pythonの変数の参照について
変数の参照を調べると下記の記事を発見した。
https://qiita.com/ponnhide/items/cda0f3f7ac88262eb31e結論は記事にある通りで自分の環境でも再現できたが、仕組みが理解できなかったので、調べてみた。
>長々と書いたけど、つまり、
変数に新たなオブジェクトそのものが代入されるときには、これまでの参照先から変わって新たなオブジェクトが作られた場所を参照するようになる。
で実務的には問題ないはず。# ミュータブルとイミュータブル
Pythonのオブジェクトには、ミュータブルとイミュータブルの2種類あり、これを理解できれば変数変更時の挙動の仕組みを理解できる。
公式を見ると、[ミュータブル](https://docs.python.org/3/glossary.html#term-mutable)とは、
>Mutable objects can change their value but keep their id().とある。ここで `id()` はオブジェクトのIDを返す。したがって、`id(
Pythonで画像をOCRしてテキスト変換する!
# はじめに
Pythonプログラムで即業務に役立つサンプルプログラムとして、画像の中の文字をOCR処理して文字起こしするプログラムを作成しましたので、共有します。
今回利用したOCRエンジンは、Tesseract-OCRです。# 動作環境
Visual Studio Code
Python3.9.1
# 各種インストールライブラリー
pyocr 0.8.2
Pillow 8.4.0
pyperclip 1.8.2
# 処理概要:
クリップボードにある画像データをインプットにPythonプログラムでOCR処理して、テキストデータに変換して、再びクリップボードに保存するプログラムです。
# YouTubeでの解説:
プログラムの詳細やTesseractのインストール方法、Pythonプログラムをショートカ
BlenderでPythonを実行する方法
## 概要
Blenderの機能のいくつかは、Pythonを使って実行できます。
ここでは、Pythonコードを実行する4つの方法を紹介します。1. BlenderのPythonコンソール
1. Blenderのテキストエディター
1. シェルからBlenderのコマンド
1. アドオン## BlenderのPythonコンソール
Pythonコンソールは、ちょっとしたコードを実行するのに向いています。
Pythonコンソールを表示するには、BlenderのエディタータイプからPythonコンソールを選びます。
なお、Pythonコンソールは、Scriptingワークスペースで予め表示されています。ワークスペースに切り替えはヘッダーで可能です。Scriptingは、ワークスペースの一番右にあります。ワークスペースが切れている場合は、スクロ
【BOXVIA】ベイズ最適化用GUIアプリケーション
## 本記事の内容
[ベイズ最適化用のGUIアプリケーションBOXVIA](https://yamanaka-lab-tuat.github.io/BOXVIA/) (**B**ayesian **O**ptimization E**X**cutable and **Vi**sualizable **A**pplication) を開発しました。
本記事では、ベイズ最適化の実行と得られる結果の可視化を**プログラミングなし**に行うことができるBOXVIAの使い方と機能を説明します。このアプリは,主に次にような人向けです。
・ベイズ最適化を使ってみたいと思いつつも,計算機環境の構築やプログラミングの必要性から躊躇している人
・ベイズ最適化を行って出力された結果の可視化に悩んでいる人
・理論の詳細はさておき、とりあえずベイズ最適化を実行してみたい人本記事では、ベイズ最適化についての詳しい理論については説明しません。わかりやすくまとめられているQiitaの解説記事も既に多数存在するので、そのうちいくつかを挙げておきます。
【参考記事】
[ベイズ最適化入門](https://qii
PythonのBlackフォーマッタがVSCodeの拡張機能として利用できるようになった
# 概要
最近人気のPythonのコードフォーマッタの[Black](https://black.readthedocs.io/en/stable/)が、VSCodeの拡張機能としてプレリリースされた。# VSCodeの拡張機能 Black Formatter
Blackフォーマッタの拡張機能がVSCodeのマーケットプレイスで公開された。https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter
現状はプレリリース版のみである。インストールするには、インストールボタンのプルダウンメニューから「プレスリリースバージョンのインストール」を選択する。

これまでBlackは `pip install black` により
ONLYOFFICEをPython Appに組み込む方法
**この記事では、ONLYOFFICEをPythonアプリに統合する方法をご紹介します。**
ONLYOFFICEは、あらゆるプログラミング言語で書かれたウェブアプリにドキュメント、スプレッドシート、プレゼンテーションの編集機能をもたらすことができる、強力なオープンソースサービスです。この記事では、ONLYOFFICEをPythonアプリに統合する方法をご紹介します。
そのために、Python上でシンプルな文書管理システムを作り、そこにONLYOFFICE文書エディターを統合しましょう。これは思うより簡単なことです。

**Pythonで作るDMS**
このパートでは、ONLYOFFICEとの統合をその例で示すために、Pythonアプリのコードを書きます。エディターを統合しようと思っているアプリには、閲覧/編集のために開く必要のあるファイル
Open MPI を用いて PyΤorch によるマルチノード分散学習を行う方法
## 目的
DistributedDataParallelを用いてマルチノード環境で機械学習を分散させる実装の際に色々つまづいたのでそのメモです。
この記事ではtorch.multiprocessは使いません。## 概要
自分が主につまづいたのは以下の3点です
① Pythonスクリプト実行時に必要な環境変数
② 通信の初期化(dist.init_proecss_group)
③ ランクの扱い方## コード
“`dist_run.sh
#!/bin/shn_nodes={ノード数}
n_gpu_per_node={1ノードあたりのGPU数}chmod +x ./dist_python.sh
mpirun -x LD_LIBRARY_PATH -n $((n_nodes*n_gpu_per_node)) -npernode $n_gpu_per_node –bind-to none ./dist_python.sh main.py {学習に必要なコマンドライン引数}
“`“`dist_python.sh
#!/bin/shpython $* \
有限な無限スクロールページをスクレイピングしたかった
### あらすじ
今回スクレイピングしたいサイトがスクロールバーを
ある程度下まで下げると、まだ読み込まれていない
コンテンツが出力される無限スクロールページだった。対象データは約3万件。
最下端まで手動で手動でたどってHTMLから抜き出すのも
良いといえば良いけどそんなにヒマではない……そんなこんなで、Google先生に伺ったところ
下記がヒットしたので備忘で押さえておきたいと思った次第。### 下端が存在する無限スクロールを自動化
“`Python:有限な無限スクロール対策
def endlessScroll():
# 対象ページにアクセス
driver.get(targetURL)# アクセスできたらとりあえず、全部スクロール
sleep(3)
# 現在のウィンドウの高さを取得
winHeight = driver.execute_script(“return window.innerHeight”)# スクロール開始位置の初期化
lastTop = 1# 無限スクロールページの最下