物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

2022-01-01から1年間の記事一覧

MacでPython 3をインストールする方法

HomeBrewをインストール brew.sh 上記のサイトにシェルコマンドが載ってる。記事執筆時は /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" だった。HomeBrewを入れると、ついでにXcodeもインストールされ…

Python OpenCV 大量のアイコンからモザイクアートを作ってみる

Pythonで実装してみた 元画像を読み込むところ。BGRに分割し、分割された領域ごとの平均輝度値を求める import cv2 import glob import numpy as np orgfile = "original02.png" orgimg = cv2.imread(orgfile) P=20 #分割する縦横のピクセル数 Nx = int(orgi…

Python tweepy Twitter APIの使い方 (メモ)

可能な限り全てのツイートを検索して取得する。ただし、サーチバン等により検索で出て来ないツイートは取得できない。 import tweepy tweets = [] query = "物理の駅" for page in tweepy.Cursor(api.search_tweets,q=query, tweet_mode='extended',result_t…

Python: Jupyter上で、tracebackで例外をcatchしてから標準出力して正常終了する

try: raise "ERROR" except: try: import traceback traceback.print_exc() except:pass

Python tweepy twitterの標準検索APIの仕様 (日本語訳)

https://docs.tweepy.org/en/latest/api.html#tweepy.API.search_tweets API.search_tweets(q, *, geocode, lang, locale, result_type, count, until, since_id, max_id, include_entities) Returns a collection of relevant Tweets matching a specified …

LISE++ファイルをPythonで読み取りBeamDumpの設定を調べる

LISE++ファイルは、テキストファイルで作られているのでPythonで容易に読み取ることができる。 [] で囲まれた文字列をカテゴリ、その中で記述された = で区切られたKeyとValueを辞書型で詰めている。; 以降はコメントとして無視している。 def read_lise_lpp…

Python jupyter lab で動的なグラフを作る

Jupyter lab等でグラフをインタラクティブに動かしたいとき、例えば特定の値を変えたグラフをセルを実行することなく次々と表示させたい時、ipywidgets.interactを使うと良い。 使用例 %matplotlib inline import matplotlib.pyplot as plt import ipywidget…

Python 時間をdatetime型、文字列、unixtimeに相互変換

文字列→datetime, unixtime, 文字列 import datetime tstr = '2020/9/17 9:00:01' tdt = datetime.datetime.strptime(tstr, '%Y/%m/%d %H:%M:%S') d_week = {'Sun':'日','Mon':'月','Tue':'火','Wed':'水','Thu':'木','Fri':'金','Sat':'土'} print(type(tdt…

Python ログインが必要なサイトでスクレイピングするための前準備 POSTで認証

session を使い回すところがポイント import requests session = requests.Session() url = "https://test.test/login" data = { "email": "mail@mail.mail", "password": "password", } ret = session.post(url=url, params=data) assert(ret.status_code==…

(Solved v2.2.2 and later) Slackdump_v2.2.0 Katakana charactors directory problem

日本語訳は下に (Japanese translation below) This problem was fixed in version v2.2.2 and later. Please download the latest version of the slackdump. There is an excelent software called slackdump that allows you to back up all your visible…

Python+matplotlib で 2つの軸を左右・両方左に描画する

物理では、例えば、β と Energy [MeV/u] のように、同じ量だが異なる表記をすることがある。 これを1つのグラフに同時に表示したいとき、以下のようにする。 import numpy as np import matplotlib.pyplot as plt Zs = np.arange(1, 100, 1) data1 = 0.5+Zs*…

Python: jsonをdumpsするときの浮動小数点の桁数を制御する

dumpsで桁数を制御することはできないが、loadsで制御することが可能。速度は遅くなるが、dumps→loads→dumps にすると良い。 import json print(json.dumps([23.67, 23.97, 23.87])) print(json.dumps([23.67000000000002, 23.96999999999999, 23.8700000000…

Python Jupyter Lab で RuntimeError: Cannot enter into task <1> while another task <2> を解消する

Jupyter Lab で以下のようなエラーが出た。tornado がエラーだとか。 Exception in callback <TaskWakeupMethWrapper object at 0x000002767EB13B80>(<Future finis...a24"\r\n\r\n'>) handle: <Handle <TaskWakeupMethWrapper object at 0x000002767EB13B80>(<Future finis...a24"\r\n\r\n'>)> Traceback (most recent call last): File "c:\user…</future></handle></future></taskwakeupmethwrapper>

Windows cipher /w でディスクの空き容量を完全に消去する

HDDのデータを完全に消去したいとき、いくつかの方法があるが、Windows上で比較的安全に容易に行えるのが cipher /w というコマンドである。公式のドキュメントに docs.microsoft.com ボリューム全体で使用可能な未使用のディスク領域からデータを削除します…

Google Chromeで起動時のプロファイル(ユーザー)を固定する

Google Chromeは、複数のプロファイルを使い分けることができる。つまり、ユーザーごとにブラウザを分けられて、それぞれのブラウザは各ユーザーがログイン済みの状態になる。しかし、普通にGoogle Chromeを開くと、最後に閉じたユーザーのブラウザが開いて…

SlackからエクスポートしたZIPファイル内のファイルパスの文字化けを修正する

いつからかSlackのチャンネル名に日本語が使えるようになったが、SlackからエクスポートしたZIPファイルのファイル名、ディレクトリ名はcp437 コードページ437 - Wikipedia でエンコードされているため、UTF-8にするには、cp437としてエンコードする必要があ…

.gitignore: ディレクトリ内の一部のファイルだけ管理して他は無視する方法

Git

ディレクトリを無視 /build/ と書くと、それ以降の全ての除外(!)は効かなくなるので注意せよ。 ディレクトリ内の一部のファイルだけ管理して他は無視するとき、さらに深いディレクトリにある一部のファイルだけ管理して他は無視するときの .gitignoreの記述…

未解決: Googleドキュメントで変換中の文節が分からない

GoogleドキュメントやGoogleスライドショーで日本語入力をしているとき、文字変換中に、変換対象の文節(部分)が分からない問題が発生している。 ハイライトは表示されない。アンダーラインで太い+点線の区別もなく、アンダーラインの切れ目もない。これでは…

Python: SlackにインポートするためのCSVファイルを、Slackのエクスポートしたデータ(ZIPファイル)から作成する

旧ワークスペースの一部のチャンネルのみ、新ワークスペース(新WS)にCSVファイルで移行するためのPythonスクリプトを書いたので紹介する。 準備することは、 旧ワークスペースからエクスポートしたデータ (アーカイブしたZIPファイル) ワークスペースのチャ…

SlackにCSVファイルで投稿をインポートする

Slackの旧ワークスペースを、その構造を保ったまま別の新ワークスペース(新WS)に移行するのではなく、特定のチャンネルの投稿だけを新WSに移行させたいとき、CSVファイルを使うのが便利だ。WSごと移行よりも、工数が少なく作業が容易である。 slack.com に解…

Pytyon: Jupyter lab 起動時に cannot import name 'soft_unicode' from 'markupsafe'

C:\Users\Masahiro\Downloads\slack>jupyter lab Traceback (most recent call last): File "c:\users\masahiro\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "c:\users\masahiro\a…

Python: 2次元図で凸多角形の内部のイベントを得る

この記事の Awkward のバージョンは1.X.Xです 例外処理はちゃんとしてないので注意せよ。 import numpy as np import awkward as ak import matplotlib.pyplot as plt # 配列作成 obj={} rs = np.random.RandomState(0) obj["memx"]=rs.rand(1000) obj["memy…

Ubuntu 18.04 LTS 起動しない問題の解決 (ディスク関連)

「Ubuntuが起動しないので何とかしてほしい」という依頼を受けて、OSが入ったSystem用のSSDだけもらって原因を究明した話。 手元のデスクトップパソコンに適当に挿して起動すると /dev/sda2: clean, **/** files, **/** blocks You are in emergency mode. A…

Python: 重イオンのEnergy loss と Energy loss straggling

まず、各定数の確認する。 import numpy as np elementary_charge = 1.602176634*10**-19 # 電気素量 C c_light_m = 299792458 # 光速 m/s electron_mass_kg = 9.1093837015*10**-31 # 電子質量 kg permittivity_vacuum = 8.8541878128*10**-12 # 真空の誘電…

Python: 4桁の原子量

standard_weights = [1.008, 4.003,\ 6.941, 9.012, 10.81, 12.01, 14.01, 16.00, 19.00, 20.18,\ 22.99, 24.31, 26.98, 28.09, 30.97, 32.07, 35.45, 39.95,\ 39.10, 40.08, 44.96, 47.87, 50.94, 52.00, 54.94, 55.85, 58.93, 58.69, 63.55, 65.38, 69.72,…

Visual Studio: Cで書かれたライブラリをC++から呼ぶ方法

C言語で書かれたライブラリ (.libファイル) を C++からは直接呼ぶことができない。検証してみる。 libtestというプロジェクトで、構成の種類をスタティックライブラリ (.lib)にしたプロジェクトを作成した C言語で書かれたライブラリと、サンプルプログラム…

Pythonから外部プログラムを実行して標準出力をstrで得る

WindowsでもC++を直接呼ぶ方法があるらしいが、めんどくさいので引数で情報を渡して、標準出力で結果を得ることにする。 import subprocess exe = 'puroguramu.exe' arg = "hikisu" #引数が1つの例 proc = subprocess.Popen([exe, arg], stdout=subprocess.P…

Python lmfitを使って、マルチガウシアンでフィッティングする

phst.hateblo.jp の続編 mzfit が使っている tensorflow が重すぎなのと、モジュール読み込みに時間がかかるのと、機能的に不足する点があったのと、マルチプラットフォームであるべきという思想に反するので、lmfitを使ってマルチガウシアンでのフィッティ…

Python ウェブサイトで公開されているネットワーク障害の頻度を解析する

名古屋大学の障害情報一覧にあるネットワーク障害の発生年月日、発生月をPythonで解析してみる。2022/05/14 時点でのHTML構造に対応しているので、ホームページの構造が更新されると使えなくなることをご承知おきください。 データをダウンロード import url…

Python + NumPy: 乱数生成のシード(RandomState)をちゃんと管理する

qiita.com NumPyでは、発生する乱数をシードを使ってコントロールすることが可能で、グローバルシードを使う方法と、乱数状態を保持したクラスを使う方法がある。 グローバルシードを変更する np.random.seed(seed) と、乱数状態クラスを取得するための np.r…