- 1. Pythonで作成したSQLをOracleに投げてマルチコアで並列処理させた。
- 2. AtCoder Problems | ABC261 A.Intersection
- 3. Pushbullet + websocketsでリアルタイムに通知を受け取る
- 4. ABC262 A~C問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
- 5. テスト投稿
- 6. DMX制御MP3再生Raspberry-Py
- 7. [Python] jupyter notebookでplt.imshow()時にkernel deadとなる場合
- 8. Pythonでsnscrapeを用いたツイート抽出
- 9. APLpyに頼らず,Astropyのみを使ったFITSのプロットを極めたい
- 10. UbuntuでPythonを使う前にやること
- 11. 【Django】ページをPDF出力する【Python】
- 12. python dict sort by val
- 13. ワイ「Pythonの勉強したいなァ・・・Djangoってのがあるんか」
- 14. [sphinx] WARNING Inline interpreted text or phrase reference start-string without end-string.
- 15. Raspberry-Py ロボットカー製作Go学習
- 16. Pythonでスプレッドシートを操作したい!
- 17. ガウス過程 from Scratch Non-Gaussianな尤度によるガウス過程
- 18. VSCode PythonのSuggestサジェストが重複duplicate表示する時の解決方法
- 19. マルチステージビルドでPythonのコンテナイメージを軽量にする
- 20. オフライン環境で pip install したい
Pythonで作成したSQLをOracleに投げてマルチコアで並列処理させた。
PythonでOracleにSQLを発行しているが、1コアしか使っていない模様…お手軽にSQLをマルチコアで並列処理させて、処理速度を向上できる方法はないものかと調査してみた。
結果的に半日ぐらいかけて発見&実装に成功したので共有したいと思う。
実現手法としては以下の通りです。
①Oracle 19C Enterprise EditionではSQLにヒントを入れると可能
→今回はStandard Editionを使っているので使用不可
②Oracle 19C Standard EditionではPL/SQLにて実現可能であることを発見
③Pythonから無名PL/SQLを発行して並列処理に成功※尚、単語などに誤りがあればご指摘いただければ嬉しい所存です。
# ミッション的なもの
使っている言語はPython3、DBはOracle 19C Standard Edition。INSERT~SELECT文でデータを登録しているシンプルな処理。
SQLは「テーブルB」のある条件に合致するデータを「テーブルA」に登録するだけ。カーソルでぐるぐるループする様な難しい処理は無し
AtCoder Problems | ABC261 A.Intersection
## ① 問題
[こちら](https://kenkoooo.com/atcoder/#/table/)でAtCoder上で出題されたコンテストの問題が集大成されています。
今回解いた問題は[こちら](https://atcoder.jp/contests/abc262/tasks/abc262_a)。## ② 解答
“`262A.py
Y = int(input())
2000 <= Y <= 3000
Pushbullet + websocketsでリアルタイムに通知を受け取る
## 前提知識
### Pushbulletとは
複数デバイス間(PC・スマートフォン・タブレットetc)で情報を共有するためのアプリ。
Androidを使っている場合、端末間での通知のミラーリングに対応しています。https://www.pushbullet.com/
### websocketとは
ざっくり言うとリアルタイム通信のためのプロトコルです。
こちらに詳しいです。https://qiita.com/chihiro/items/9d280704c6eff8603389
## やったこと
Android端末上の通知を、Pushbullet APIを介してPythonスクリプトで取得します。
リアルタイムの通信手段としてwebsocketを使用するので、Pythonのライブラリ「websockets」を利用していきます。https://websockets.readthedocs.io/en/stable/index.html
## サンプルコード
“`python
import asyncio
import websockets
import json
ABC262 A~C問題 ものすごく丁寧でわかりやすい解説 python 灰色~茶色コーダー向け #AtCoder
ABC262(AtCoder Beginner Contest 262) A~C問題の解説記事です。
灰色~茶色コーダーの方向けに解説しています。その他のABC解説、動画などは以下です。
更新時はツイッターにて通知します。
Tweets by AtCoder4https://qiita.com/sano192/items/54accd04df62242b70f0
# A – World Cup Dif:8
https://atcoder.jp/contests/abc262/tasks/abc262_a
スポーツ大会は4年に1回必ず開催されます。
よって
・Yを4で割った余りが2→西暦Y年に開催
・(Y+1)を4で割った余りが2→西暦(Y+1)年に開催
・(Y+2)を4で割った余りが2→西暦(Y+2)年に開催
・(Y+3)を4で割った余りが2→西暦(Y+3)年に開催
と判定しましょう。Yを4で割った余りはY%4で計算できます。
判定にはifを使います。入力の受け取り、出力がわからない方は以下の記事を参考にしてください。
https://qi
テスト投稿
# テスト
テスト投稿です。
これからたくさん書いていきます。~~~python
print(‘hello world’)
~~~
DMX制御MP3再生Raspberry-Py
## タッチパネルGUI付きDMX512入力照明同期用MP3再生器製作(2017年)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378482/e96e3b24-dd0d-add1-8d89-7ad6b77194bd.png)### DMX512信号はSTM32-Mbedを使いUSB接続( ttyACM0 )でコマンドをRaspberry-Pyに送りました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378482/ef138fce-0e0b-f9c8-c47e-47bc7d2d6f5f.png)python プログラムソース 例
“`python
#/usr/bin/env pythonimport serial
import time
import pygame.mixer
import pygame, Buttons
import subprocess
from
[Python] jupyter notebookでplt.imshow()時にkernel deadとなる場合
jupyter notebook上でplt.imshow()を実行したときに以下の画面のようになった。
“`
Kernel Restarting
The kernel appears to have died. It will restart automatically.
“`
![スクリーンショット 2022-08-05 172627.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/594896/91f27f82-96a8-3144-fc35-31262484db95.png)以下を入れると解決した。
“`python
import os
os.environ[‘KMP_DUPLICATE_LIB_OK’]=’True’
“`
Pythonでsnscrapeを用いたツイート抽出
snscrapeは個人のAPIキーがなくても自由にSNSをスクレイピングできます。
詳しくはこちら:https://github.com/JustAnotherArchivist/snscrape今回はsnscrapeを使って、Twitterから時間、キーワード、いいね数、ツイートの個数を指定して、スクレイピングしてみました。
# 開発環境
* M1 Mac
* python3.8
* pandas# snscrapeのインストール
“`python
pip3 install snscrape
“`# 実装
“`python
# 必要なライブラリをインポート
import snscrape.modules.twitter as sntwitter
import pandas as pd# ツイートの個数設定
maxTweets = 1000
# ツイート検索するキーワード
keyword = ‘新年’df=[]
cols=pd.DataFrame([[‘id’,’date’,’tweet’,’likeCount’]])
cols.to_csv(‘tweet.
APLpyに頼らず,Astropyのみを使ったFITSのプロットを極めたい
# Astropyとは
天文でよく用いられるFITSファイルを読み書きするためのパッケージ (https://www.astropy.org).
# なぜ極めたいのか
APLpy (https://aplpy.github.io) を用いてよくプロットを作成していたが,どうにも,macOSの更新やARMアーキテクチャに更新が追いついていないようなので,APLpyに頼りきりも良くないなと思ったことが主な要因.同じようなことを下の記事でも書いた.
https://qiita.com/R1ngNebula/items/a2b7c6b1f239fe62bb74
正確にはAPLpyが悪いわけではなく,APLpyが依存している別のパッケージの更新が間に合っていない様子.PyPI (https://pypi.org/project/aplpy/) を見る限り,2022年にもAPLpyはリリースされている.そんなこんなでこれまではPyenvでギリギリAPLpyが使用できていた3.6.15をインストールし,APLpyを使用していた.
しかし先日,M2のMacBook Airを購入し,環境
UbuntuでPythonを使う前にやること
OS: Ubuntu22.04
Python: 3.8.131 インストール
インストールは日本語で使いたい場合であっても英語で行う.
フォルダ名をつけ直す手間が省ける.2 ソフトウエア
Chrome VSCodeなど必要なソフトウエアをインストールする.https://www.google.com/chrome/
https://code.visualstudio.com/3 作業ディレクトリの作成
任意の場所に作成する
pyenvで設定する際に用いる4 Pythonのインストール
pipのインストール
“`
sudo apt-get -y install python3-pip
“`今回はPyenv+Pipenvで環境整理を行う
pyenvのインストール
https://qiita.com/neruoneru/items/1107bcdca7fa43de673d必要なバージョンのPythonをインストールしておく.
上記サイトの後に
“`
cd /$自分の作成した作業ディレクトリのパス
pyenv local 3.8.6
python3 –ver
【Django】ページをPDF出力する【Python】
# 初めに
本記事はDjangoで作成されたWebアプリケーションのページを、pdfkitというライブラリで出力する記事の目次です。
一番簡単な出力方法からオプションの指定、障害発生とその対策までいくつかの記事にまとめています。
これらを参考にしてページをpdf化させましょう!# 環境
|名称 |バージョン |
|—|—|
|Python |3.10.4 |
|Django |4.0.6 |
|pdfkit |1.0.0 |# 基本編
[【Django】ページをPDF出力する(基本)【Python】](https://qiita.com/nagisa_O/items/3eaaa18d68468e8de7e5)# 応用編
[【Django】ページをPDF出力する(オプション)【Python】](https://qiita.com/nagisa_O/items/59be49e513cac1c2546d)# セッション編
[【Django】ページをPDF出力する(セッション)【Python】](https://qiita.com/nagisa_O/item
python dict sort by val
“`
myDict = dict(sorted(myDict.items(), key=lambda item: item[1], reverse=True))
“`
ワイ「Pythonの勉強したいなァ・・・Djangoってのがあるんか」
# 環境情報
– MacBook Air (Monterey)
– Docker Compose version v2.6.1## 導入
ワイ「なんや最近Next.jsしか触ってへんし別の言語使いたいなぁ」
ワイ「せや!昔Bot作ったことあるしPython触ったろ!」
ワイ「ほ〜ん、Djangoってのを使ってwebアプリも作れるんやな。ほなやってみるか」
## 環境構築
ワイ「ローカルに環境構築するん嫌やしな〜docker使うか〜」
ワイ「お、ええのあるやん!」
[クィックスタート: Compose と Django](https://docs.docker.jp/compose/django.html)
ワイ「適当にディレクトリ作って、と。まずは`Dockerfile`からやな」
“`dockerfile:Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r req
[sphinx] WARNING Inline interpreted text or phrase reference start-string without end-string.
# 最初に
以下の環境で実施
|環境|詳細|
|—|—|
|OS|windows11|
|言語|python|
|sphinx|v5.1.1|Pythonでの自作モジュールのdocを以下で作成
_dirは絶対パスを入れている“`
sphinx-apidoc -f -o source_dir module_dir
sphinx-build source_dir build_dir
“`# エラー
記事タイトルのエラーが発生。
“`
WARNING Inline interpreted text or phrase reference start-string without end-string.
“`# 原因
原因は下記の記事を参照して推定した。
恐らく、rst記載の方法として、「“」で囲むべき文字列が適切でないと思われる。
apidocで自動生成しているので、rst自体は解読できないので確定できなかった。https://techwriter.documatt.com/sphinx-errors/5-inline-literal-start
Raspberry-Py ロボットカー製作Go学習
### 2020 64歳の誕生日にスキルアップ電子工作始ました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378482/bac97163-ee47-4d73-528d-f13c86dab167.png)
### メーカーサイト資料Visit our online store to purchase this product ☛ http://freenove.com/store
Download tutorial and code for this kit ☛ http://freenove.com/fnk0043### Go学習も進めながらAIも進めました
https://www.udemy.com/course/python-drone/https://www.udemy.com/course/go-drone/
![image.png](https://qiita-imag
Pythonでスプレッドシートを操作したい!
# はじめに
業務でPython(JupyterLab)を使用するために
一からインストール、設定をする必要があり
ほぼテキストだけの設定手順書を渡されて ?(゜-゜)? となったので
ひとまず最低限使える環境を作るためにやったことを
できる限り簡単にまとめてみました。※最低限動く を目標にしているので用語の解説などは省略しています
Python始めてみたいけど・・・ とか
とりあえず自分で環境作ってみたい! とか
そういう方の参考になれば幸いです。# 環境
Windows 10 Pro
Python 3.9.0## やりたいこと
・Python(JupyterLab)でスプレッドシートの編集ができる環境の構築最終的には以下
・特定のサイトからリンクのテキストとURLを取得する
・Googleスプレッドシートの操作(主に書き込み)# 環境構築
## Pythonのインストール
### 1.インストーラーをダウンロード
[リンク先](https://www.python.org/downloads/windows/)から、必要なバージョンのインストーラーをダウンロ
ガウス過程 from Scratch Non-Gaussianな尤度によるガウス過程
今までに執筆した「[ガウス過程 from Scratch](https://qiita.com/meltyyyyy/items/8440849532cd55da1e45)」と「[ガウス過程 from Scratch MCMCと勾配法によるハイパーパラメータ最適化](https://qiita.com/meltyyyyy/items/5a058ecc81e010876a39)」、「[ガウス過程 from Scratch コレスキー分解による高速化](https://qiita.com/meltyyyyy/items/44e2f270be72943086f3)」では、 **ガウス過程(Gaussian Process)** をゼロから実装しハイパーパラメータの最適化や計算の高速化を行いました。
通常のガウス過程では、関数 $\mathbf{f}$ と出力 $\mathbf{y}$ の関係 $P(\mathbf{y}|\mathbf{f})$ がガウス分布 $\mathbb{N}(\mathbf{f},\sigma^2\mathbf{I})$
に従うという前提のもと、出力を計算していまし
VSCode PythonのSuggestサジェストが重複duplicate表示する時の解決方法
# 環境
OS: Windows10
VSCode : バージョン1.69.2
LSP: Pylance
Notebook使用# この症状が出るシーン
.pyファイルと.ipynbファイルを同時に編集しているとき
.pyファイルのみ、.ipynbファイルのみのときは問題ない。# 解決方法
settings.jsonに`”python.pylanceLspNotebooksEnabled”: true`と記述してnotebookのLSPをpylanceにすることを明示する。
# ※追記
.pyファイル上のsuggestの重複はなくなったものの、.ipynbファイル上のsuggestの重複がなくならない。
Microsoftの`Pylance`からPython標準の`jedi`に変更することにした。
settings.jsonへ`”python.languageServer”: “Jedi”,`を記述
マルチステージビルドでPythonのコンテナイメージを軽量にする
仕事でPython/Djgnagoを使ってWEBアプリを開発し、作成したアプリはDockerコンテナにして運用しています。インストールするPythonのライブラリが150個ぐらいあるので、コンテナイメージが大きくなってアップロードやダウンロードに時間がかかっていました。
何とかコンテナイメージを軽くするために、マルチステージビルドを実施(ついでにAWS ECRのイメージスキャンも実施)し、コンテナイメージの容量(と脆弱性)がどのぐらい削減できるのかをそれぞれのパターンで検証しました。
## 修正前
“`
FROM python:3.7.13-bullseyeENV PYTHONUNBUFFERED 1
ENV PIPENV_TIMEOUT 600# githubから直接pipインストールするため、gitインストール
RUN apt-get -y update && \
apt-get -y upgrade && \
apt-get -y dist-upgrade && \
apt-get -y install gcc git mecab libm
オフライン環境で pip install したい
社内・学内の計算機サーバーで`pip install`したいけどインターネットに接続していない…
ということが、ちょくちょくあります。私も、最初結構はまってしまったので備忘録として残しておきます。
# 環境
“`
サーバー : Ubuntu 18.04(sshで接続), python3: 3.6.9
PC : Windows10 + WSL2(Ubuntu20.04)
“`
# pip download
公式リファレンス → https://pip.pypa.io/en/stable/cli/pip_download/
`pip download` でパッケージファイルをダウンロードして保存できます。例えば、
“`bash:cmd
cd ~
mkdir src
cd ~/src
pip download numpy
pip install ./*
“`
とでもすれば、numpyがインストールできます(多分)。
ただし、単純に `pip download` すると今回の場合 WSL2(Ubuntu20.04) 用のパッケージがダウンロードされてしまうので、そのままs