- 2025/05/24
- 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) * False
ones_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.aui
is a re-implementation ofwx.aui
using 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)