- 2025/12/16
- Category :
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Python, Python, Python! In the spirit of "import antigravity"
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
C:\Users\ユーザー名\AppData\Roaming\Sublime Text 2\Packages\IMESupportにあるはずです。array1 = np.zeros((w,h)) myarrayと同じ次元のマスクが欲しい時はmask = np.ones(myarray.shape, dtype=np.bool) * False myarray.shapeってやるならnp.ones_likeをつかってmask = np.ones_like(myarray, dtype=np.bool) * Falseones_likeだとTrueの行列になるのでmask = np.zeros_like(myarray, dtype=np.bool)mask = np.full_like(myarray, Flase, dtype=np.bool) mask = np.full_like(myarray, True, dtype=np.bool) np.full_likeを使うとnanで満たされた行列の初期化がスマートになります。mask = np.full_like(myarray, np.nan) np.onesにnp.nanをかけていたけどこっちのほうがスマートですね。np.zerosに似たnp.emptyは初期化しないでメモリだけ確保するので、次元とデータ型は正しいが、確保されたメモリに残っているめちゃめちゃな値の行列ができる。全要素を上書きするのが確定している場合にはいいけど、忘れそうで危険なので使わないことにしている。そこまでパフォーマンスにこだわる状況っていまのところあまりない。
figure(facecolor='w')にしてプロットした図をウィンドウズのSnipping toolでクリップボードにコピーして、パワーポイントに貼って、ノーテーションしたりするわけですが、これが何度も続くと面倒い。win32clipboardつかってみたら?という回答があったのでやってみた。copy2clipboard()としてやれば現在フォーカスがある図をBMPとしてクリップボードにコピーします。もしくはfigのインスタンスをfig=figure()のようにして取得してからプロットして、copy2clipboard(fig)のように使います。エディターにプロット用のスクリプトがあってなんどもプロットする場合、tight_layout()とかの後にこの関数を置いておくと一手間省けるという感じです。力技ですが、一応つかえます。だそうで、同じ機能+アルファをPython版で提供しているものらしい。基本的にwx.lib.agw.auiis a re-implementation ofwx.auiusing only Python code.
wx.libにあるものは全部Pythonバージョンらしい。wx.auiで作り始めたアプリをwx.lib.agw.auiに差し替えたところ問題なく動作したので、ちゃんとAPIも互換しているらしいし、+アルファの部分が嬉しい。例えばwx.aui.AuiNotebookにはSetRenamableというメソッドがないが、agwの方にはこれがあるので、タブの名前をがダブルクリックで変えられるようにするのが一行でできてしまった。wx.lib.agw.auiのAGWとはAdvanced Generic Widgetsのことで、AUIを含めていろいろなちょっと高度なウィジェットが提供されています。APIがwxPythonのバージョン3系(Phenix)のDocにあったのでメモ。見つけるの大変だったが、これで安心してwx.auiから乗り換えられそう。。wxPython3も今のところまったく問題がないです。
import bibtexparser
with open('bibtex.bib') as bibtex_file:
bib_database = bibtexparser.load(bibtex_file)
bibtex_str = bibtexparser.dumps(bib_database)
newBibDb = bibtexparser.bibdatabase.BibDatabase() newBibDb.entries = sublist
import subprocess from time import sleep def PDFopen(files, libraryPath = 'C:\\Dropbox\\PathToYour\\PDFs' execPath = r'C:\Path2\PDF-XChangeViewerPortable.exe' ): if type(files) is not list: raise ValueError('The first arg should be a list containing more than one file path') return P = subprocess.Popen([execPath, files[0]]) sleep(2) # wait until the instance is ready for more files for pdf in files[1:]: P = subprocess.Popen([execPath, pdf]) if __name__ == '__main__': files = [ 'Einstein1997.pdf', 'Heisenberg2005.pdf', 'Kandel2009.pdf', 'Galileo1662.pdf', ] PDFopen(files, libraryPath)