Python

tqdmでプログレスバーを表示!

ちょこっと便利シリーズ第二弾!! github.com pythonのプログラムを書いていて、プログレスバーを表示したいときってありません?? tqdm はそんなあなたのためのツールです。 tqdm means "progress" in Arabic (taqadum, تقدّم) and is an abbreviation fo…

pythonで実証する、正規分布 ~ 中心極限定理

連休初日から2日連続有給ぶちかましたkimotonですこんにちは。 中心極限定理とは 大数の法則によると、ある母集団から無作為抽出した標本の平均は標本の大きさを大きくすると母平均に近づく。これに対し中心極限定理は標本平均と母平均との誤差を論ずるもの…

Scanpyを使ったscRNA解析

GW始まってしまいましたね。 ブログの更新をだいぶ怠っていたので、ちゃっかり更新させて頂きます。 今日はPythonでscRNA-seq解析。Python実装のscRNA解析ツールといえばScanpyがまず思いつきます。 Seuratに比べてそこまで使われていない印象ですが、機能的…

Juliaでpermutation

本日のお題。 与えられた配列の全permutationを取得する方法について、pythonとjuliaで書いてみる。 1から書いてもいいのですが、実用性を考えてパッケージを使用した方法をご紹介。 Python編 itertoolsパッケージのproduct関数を使用します。 引数にはitera…

(勉強会用メモ) REST APIs with Django : Chapter 2-3

勉強会 ちょっと業務でRESTfulなAPIを作成する必要が出てきました。 3/27 (水) に再度勉強会開くのでぜひ。 connpass.com 3/14の内容復習編。 Djangoプロジェクトの作成 Python環境にはpipenvを使用します。 # 仮想環境の作成(python 3.6) $ pipenv instal…

(勉強会用メモ) REST APIs with Django : Chapter 1

勉強会 ちょっと業務でRESTfulなAPIを作成する必要が出てきました。 3/14 (水) にこの本使って勉強会開くのでぜひ。 そのための予習メモ。 connpass.com WWW (World Wide Web) 1960年代に登場したが、初期は孤立したネットワークとして存在した(軍事、科学…

これで決まり!最強自動コード整形ツール3選!

いやいや何が決まり!だよ、全然決まらねーよっていうタイトルすみません。 きっかけ 自動コード整形ツール。弊社では全く導入されていない。 何故か。 知らないからだ。 vimプラグインと手作業での修正という現状だ。 これはどげんかせんといかん。 代表的…

実践投入!pipenv!

概要 新しいも面白いも楽しいも正義なんだよ— いちたる (@_kimoton) December 18, 2018 ということで、やっていきましょうpipenv 前回の以下の記事ではPipenvのインストールとPython3.7.1環境の作成を行いました。 今回はもうちょっと真面目にPipenvを使って…

Scrapyのインストール

今更ですがScrapyのインストールについて詳しめに。 Scrapyの動作環境 Scrapy runs on Python 2.7 and Python 3.4 or above under CPython (default Python implementation) and PyPy (starting with PyPy 5.9). ScrapyはPython2.7、若しくはPython>=3.4のも…

WSL + Hyper + fish shell + pipenv + docker環境を整える

本日Dockerを使用していて、 ユーザーディレクトリをマウントしたまま夢の rm -rf / を試しに行いましたところ。 ユーザーディレクトリ以下がすべて消えたkimotonです。 これまでWSL + wsl-terminal + bashを使っていたのですが、そろそろモダンな環境への憧…

親クラスの位置引数(positional argument)が子クラスで迷子になっちゃう件。

きっかけは。 まだそんなに開発が進んでいないが、とっても気になるリポジトリを見つけた。 github.com scrapy-selenium 要するに、Scrapy上でSeleniumを使用できるらしい。 これのイイところは、Downloader MiddlewareでSeleniumの設定をやれるようにしよう…

Scrapyのアーキテクチャ

Scrapyは、Python製のスクレイピング用フレームワークです。 Scrapyのアーキテクチャ・設計を見ることで、Scrapyの内部で何が起きているのか、その全貌をざっくり理解しましょう。

Scrapyことはじめ

Scrapyは、Python製のスクレイピング用フレームワークです。 Scrapyのごく簡単なチュートリアルを紹介しつつ、Scrapyを使用するメリットについて、考察します。 BeautifulSoupや、Seleniumだけでは足りない処理とは。。

Sphinxでドキュメント作成 - github.ioでの公開まで

Sphinx とは Python製のドキュメント生成ツール。 特徴としては以下の通り。 reStructuredTextで記述する(プラグインの導入によりMarkdownも可) ドキュメントを複数ファイルに分けて管理することができる 実体はプレーンテキストなのでGit等でバージョン管…

NCBI EntrezからFastaファイルをダウンロード

NCBI Entrez は、30以上もの生物学的な目的で作成されたデータベースに対する統合的なテキストベースの検索、情報抽出システムです。 BiopythonパッケージのBio.Entrezモジュールを使えば、このシステムをpythonから手軽に使えちゃいます。 ちなみに、Bio.En…

綺麗なコードを書いて下さい。

と言われた。 そうか。これは綺麗なコードじゃないのか。 いいだろう従おう。 ほしい関数 リストを受け取り、偶数個ずつリストで返すジェネレータ関数。 以下みたいな挙動を示すreturn_even_listを実装したい。 list1 = [1, 2, 3, 4, 5, 6] for i in return_…

とりあえず.gitconfigをいじっとけという話。

Pythonプロフェッショナルプログラミング 第3版作者: 株式会社ビープラウド出版社/メーカー: 秀和システム発売日: 2018/06/12メディア: 単行本この商品を含むブログを見る これすんごい良いです。 まだChapter 06までしか読んでないんですけども。 すんごい…

`__pycache__` の役割

__pycache__ というディレクトリがそろそろ気になってきた。 なんか気づいたらできてる。 なんなんだこれは。 以下で議論されていた。 python 3.x - What is __pycache__? - Stack Overflow 要点をまとめると。 ファイルをインポートした際にできる python c…

Matplotlib subplot の仕方

グラフを並べて表示したいとき、 2つの方法がある。ほかにもあるかもだけど2つの方法を知っている。 matplotlib.pyplot.subplotsを使う fig, axes = plt.subplots(figsize=(10, 10), nrows=2, ncols=4, subplot_kw={'adjustable': 'box-forced'}) axes には …

Selenium備忘録

今友達からbed365 というサイのスクレイピングを任されている。ブックメーカーで有名なサイトだ。ここのデータを集めて解析したいらしい。 スクレイピングでは基本ChromeDriverを使って行っているのだが、久しぶりに動かしたら、以下のようなエラーが度々表…

IPython データサイエンスクックブック memo (1)

1.1 Introduction %%writefile IPython magicコマンド。テキストファイルの作製。 インラインの数式は$...$ を使って記述。 独立した数式は $$...$$ を使って記述。 HTML() 、SVG() 、YouTubeVideo() nbviewerを使ってIPythonで生成したJSONテキストを公開可…

repr()、str()、eval() のお話

Biopython Tutorial and Cookbookの和訳を行ってる最中。 >>> from Bio import SeqIO >>> for seq_record in SeqIO.parse("ls_orchid.gbk", "genbank"): ... print(repr(seq_record.seq)) Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CG…

nCr をpython で書くと。。

つまりn個からr個取り出す組み合わせというやつ。 これをPythonで書きたい。 そんなときは高階関数reduceを使う。 import operator as op def ncr(n,r): r = min(n-r,r) if r == 0: return 1 num_over = reduce(op.mul, xrange(n, n - r, -1)) num_under = r…

MkDocs 使ってみた。

昨日任された業務を紹介しよう。 Web上でパワポの内容をWebページで見れるようにして! というものだ。 こんなとき、MkDocsがとても便利。 MkDocsの公式に飛ぶ。 サイト自体がMkDocsで作られてる。 こんなページがMarkdownでお手軽に作れるのがMkDocs。 いち…

Webスクレイピングで、、

インターンの方でWebスクレイピングが必要になったので、お勉強。 shop.oreilly.com このHTML中の <tr class="gift" id="gift1"><td> <tr class="gift" id="gift2"><td> <tr class="gift" id="gift3"><td> <tr class="gift" id="gift4"><td> <tr class="gift" id="gift5"><td> をとってきたいんだけど、 from urllib.request import urlopen from bs4 import BeautifulSou…</td></tr></td></tr></td></tr></td></tr></td></tr>

ちょっと便利シリーズ

unicodedata モジュールが便利そう。 unicodedata.name(chr[, default]) 文字 chr に付いている名前を、文字列で返します。名前が定義されていない場合には default が返されますが、この引数が与えられていなければ ValueError を発生させます。 unicodedat…

or のメモ

最近checkiOというものにハマっておりまして。 いや嘘だ、最近始めてハマりだしてまして。 様々な問題に対して海外の色んな人が書いたコードを見ることができるんですが、そこでちょっとした新しい発見をしたのでメモ。 問題は、典型的なFizzBuzzテスト。 つ…