PyCon JP 2021 発表資料です。
![High Performance FastAPI](https://cdn-ak-scissors.b.st-hatena.com/image/square/9b1c28c28f7bf1ea36a0dae71b416de0f83f97da/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fb84f78aa37fd4e7ba71aed0e0cddc89f%2Fslide_0.jpg%3F19299907)
【2020/1/9更新】2020年版もあります, こちらもよろしくおねがいします! 【2018/12/24追記】最新版を公開しました!「Python本まとめ・2019年版 - Webとデータ分析を初心者が仕事にするまで - Lean Baseball」 ※2017/12/24 最新版をこちらに上げました、この内容は古いのでこちらを見ていただけると幸いです🙇♂️ Pythonの学び方と,読むべき本を体系化しました2018〜初心者から上級者まで こんにちは.野球(とグルメ)の人です. 会社と仕事はメッチャ楽しいのですが,今日はそれと関係なくPythonの話題を久々に.*1 昨年から,「AI(えーあい)」だの「でぃーぷらーにんぐ」だの「機械学習」といったワードとともにPythonを覚えようとしている方が多いらしく, 何から学ぶべきか 何の本がオススメか 簡単に覚えて僕もいっちょ前に「えーあい
Cythonとは? Pythonは処理速度は決して早くない、むしろ遅い部類である。 そこで、C/C++に変換することにより高速化しようというのがCythonである。 低級言語のC/C++(昔は高級言語だったが、現在は低級言語といって良いだろう)に変換してネイティブコンパイルするのだから、速いに決まっている。 この記事の目的 「Cythonは難しい」、「CythonはC/C++の知識が必要」という印象があるだろう。答えは「Yes」である。 しかし、その答えはCythonをフルに使いこなす事が前提である。 実はCythonは、C/C++をそんなに知らなくても、ちょっとした高速化には充分な恩恵を得られるように設計されているのだ。 しかし、無闇にCythonを使っても「あまり高速化されない」、「移行がすごく大変」と散々な結果になるだろう。そこら辺のポイントを踏まえ、C/C++をあまり知らない初心者
まえがき 今年の春から今まで、2年ぶりにPythonを沢山書いているわけなんですが、JavaScriptのクソに頭をやられて久しぶり書くだけあって基本的なところから色々と頭から抜け落ちていたわけです。 そんで何か思い出すたびに会社のwikiを使ってメモっていたのですが、せっかくなので少々訂正をしてブログにも書きます。 また、弊社はPython2を使っているので、2が前提の記述になっているところがいくつかあります。なるべくフォローしていますが、参考にする場合は自分が使っているバージョンを確認することをおすすめします。 また、今から新しくPythonでプロジェクトを始めようと思っている人は3系を使いましょう。 知ってる人は当然知ってる、でも結構長いことPythonを書いてても知らなかったりするような小技を載っけました。 なお、メタプログラミングとかの黒魔術っぽい記事のまとめはこちら: hach
うーん、structural subtypingとダックタイピングは同じものなんだろうか。— Yukihiro Matsumoto (@yukihiro_matz) 2016年9月8日 https://t.co/5Rv86piThC wikipediaによると似て非なる物のようですね。 https://t.co/VwIg39h5M0— INADA Naoki (@methane) 2016年9月8日 この話題について補足しておきます。なお、僕はTAPL脱落組なのであまり正確性は期待しないでください。 背景 Ruby Kaigi で Matz が Ruby3 に向けて考え中の静的型について話されたようです。 少し前から、 Python でも Guido が Dropbox での大量のコードベースを改善していくために type hinting がほしいということで PEP 484 を始めました
_ Rubyが今のPythonの地位にいない理由 歴史のことなんぞなんも知らんけど、「技術的には今のPythonの地位はRubyでもよかったのに、そうならなかった」のが何故か、その理由を書いてみよう。僕はRubyの歴史なんて知らないし、以下の文章は全部、まるで見てきたかのように書いてますが、適当に書いたくせに何故か断言口調になっている怪文書の類いです。 https://twitter.com/mametter/status/741950239662170112 まめさんの書いた理由リストはどれも関係ない。いやカスってるけど。難しいというのも関係ない。 僕がRubyを知ったころ…最初に書いた通りRubyの歴史なんて知らないので、別に早くもないわけだけど…Rubyというのは全く使われていない言語だった。どっかの好き者がPerlの替わりに単純な処理に使って、「ウフ、美しくかけた、グフッ」とかつぶ
◎本番環境はCentOS 6.7 ○本番環境へのファイルの持ち込みは可能 (一応やろうと思えば何でもできる。) △本番環境へ用意されたリポジトリのパッケージは利用可能 (Ansibleを入れるなら少なくとも以下が無いと辛い) 開発者ツール(gccやmake等) opensslとgmpのライブラリとdevelパッケージ(ヘッダファイル) setuptools (pythonでpipより前からあるパッケージ管理システム ) ×本番環境はインターネットに繋げない(操作も別端末で行う) ×本番環境はシステム環境を汚してはならない 今回はこんな環境にpipを使ってAnsibleを入れました。 pipを使う理由は、依存関係の解決とそのソースコード一式のダウンロードが出来るので汎用性がありそうだと思ったからです。 長々書いちゃってますが、コマンドを流すだけなら3分ぐらいで出来ます。 必要なものを揃える
subprocess.Popenの挙動の勉強になったので、忘れないようにメモ pythonで巨大なファイルを扱うときは、全てをメモリに載せないよう、イテレータを使っての逐次処理を非常に頻繁に行う。 が、sorted()関数は巨大なファイルに対しては使えない。これはイテレータをリストに変換してから処理を行うため。 巨大なファイルをソートしたいときはUnixシステム側のsortを使う import subprocess def sorted_file_generator(filename): proc = subprocess.Popen(['sort', filename], stdout=subprocess.PIPE) while True: # while を使って1行ずつ受け取る line = proc.stdout.readline() if line: yield line.de
これまでは、py2exe や CX_Freeze など、setup.py をいちいち書かないといけませんでした。最近は PyInstaller がオススメということらしいので試してみた。 インストール pip install pyinstaller 対象スクリプト C:\Users\kounoike\Documents\python\installer-test>type hello.py #!python # coding: utf-8 print "hello world" C:\Users\kounoike\Documents\python\installer-test>python hello.py hello world .exe の作成 pyinstaller hello.py これだけ。面倒な setup.py の記述も何もなし。dist\hello 以下に hello.ex
ここHumanGeo社ではPythonを使うことが多く、それは極上の楽しみでもあります。美しく機能的なコードを短時間で記述するのにPythonはうってつけで、私個人にとっても一押しの言語です。仕事に限らずプライベートでも使っています。そんな素晴らしいPythonですが、欠点がないわけではありません。それはあまりにも遅いことです。幸いPythonには、コードをプロファイリングするための優れたツールがいくつかあるので、コードの美しさと速さを共存させることができます。 HumanGeoで働き出した頃、実行に長時間を要すプログラムのボトルネックを探り、何とかしてそれを速くさせるという仕事を担当しました。その内容は、 cProfile や PyCallGraph ( ソース )、はたまたPyPy(高速なPython用代替インタプリタ)などの各種ツールを使って、プログラムを最適化するためのベストな方法
Python 翌日、翌月を取得する(datetime.timedelta,dateutil.relativedelta) 毎回調べている気がするのでメモ。 翌日取得(timedelta) 翌日は、加算したい日付(1日)のdatetime.timedeltaオブジェクトを作成。 datetimeに加えてやります。 サンプルは以下の通り。 # -*- coding:utf-8 -*-import datetime# 今日の日付を取得today = datetime.datetime.today()# 翌日を取得next_day = today + datetime.timedelta(days=1) print today.strftime('%Y-%m-%d')print next_day.strftime('%Y-%m-%d') 実行結果
まえがき Excel Advent Calendar 2014 に空きがあったので、 前々からやりたかった「xlwings」の記事を書いた。 ちなみに僕はBlogあるので、Qiitaに何もなかったからいい機会だ。 xlwingsとは? VBAでマクロなんて書きたくない人用にPythonでマクロが書けるモジュール。 公式サイトはここですね。 xlwings インストール virtualenvでインストールすると上手く実行できないようだ(多分)。 OSのPythonにインストールした方がいい。 サンプルの実行 ここにクイックスタートが有る。 しかし、僕は少しハマったのでクイックではなくなったが・・。 まず、Excel自体をどこかに保存しておく。 僕はMac OS Xを使ってるので、 /Users/shinriyo/Documentsへ、「ブック1.xlsx」の名前でExcelファイルを保存した
HDE クラウドプロダクト開発部の小本です。 私のお気に入りツールdirenvを紹介します。 direnvとは・・・ シェルのcdをフックし、ディレクトリごとに環境変数を自動設定するツール pyenvなどを置き換えることができるツール Pythonistaも、Rubyistも、Gopherも、みんな使って損はないツール direnv以前の世界(pyenvはawesomeだった) Pythonには、プロジェクトそれぞれに専用の環境を作ってPythonのバージョンやライブラリを切り替えることができるツールがあります。 専用環境を作れる virtualenv 専用環境をコマンドで簡単に切り替えられる virtualenvwrappper と進化し、その最終形態がpyenvです。 pyenvはあらかじめディレクトリに環境を紐付けておくと、ディレクトリにcdしたとき、勝手に環境を切り替えてくれます。
インストール方法 インストール方法は pip を使って行うのが手っ取り早くて便利です。 pip install pyautogui 残念ながら pip でインストールするだけでは Windows では画像処理系がちゃんと動かない様子。 IOError: decoder zip not available pngファイルを扱おうとすると上記エラーが頻発します。 そのため、PILというライブラリをインストールしましょう。 pip install Pillow 使い方 指定画像をクリック import pyautogui image_path = "#set your image file path here" location = pyautogui.locateOnScreen(image_path) buttonx, buttony = pyautogui.center(location)
Pythonで,知っておくとちょっと便利になる組み込み関数や標準ライブラリを紹介してみようと思います! そこそこメジャーなものからニッチなものまでいろいろありますが,知らないものはぜひチェックしてみて下さい. 組み込み関数 allとany all( )は引数の要素が全てTrueならばTrue,any( )は引数の要素のいずれか1つでもTrueならTrueを返す. In [1]: all(_ % 2 == 0 for _ in [1, 2, 3]) # 全て偶数 or not Out[1]: False In [2]: any(_ % 2 == 0 for _ in [1, 2, 3]) # いずれか1つでも偶数 or not Out[2]: True
iOS用のアプリは通常、開発アカウントを取得し、Macを使って開発します。 開発アカウントを取得するほどではないが、iOSデバイス上で何かやりたい処理がある、という人はいるでしょう。 あるいは、プログラム好きな人なら率先してiOSデバイス上でプログラミングをしたいと思うのではないでしょうか。 そうしたニーズに存分にこたえることができる、iOSデバイス上で動作する統合開発環境がPythonista 3です。 2016年9月21日に開催されたPyCon JP 2016で @equal_001 さんがPythonistaについて発表されていたのでご紹介。 Python支持者のことをPythonistaといいますが、アプリ名はそこから取ったんでしょうね。 正真正銘のPythonが内蔵されていて、ローカルで動きます。 [参考] Kazuhiro AbeさんはTwitterを使っています: 「インタプ
Rubyにはgem、Node.jsにはnpmがあるが、元々Pythonにはパッケージマネージャは無かった。 それがいつの頃からか、easy_installなるものが現れ、さらにpipが作られた。今ではpipがほぼデファクトとなりつつあるけど、後付でインストールするパッケージの一つという位置づけは変わらない。箱を開けたら直ぐに使えるという意味で "Batteries included" を標榜しているPythonとしてはちょっと寂しい。 その状況をなんとかしようということでPEP-453 Explicit bootstrapping of pip in Python installationsが提案されている。「pipをPython 2.7, 3.3 及び3.4の公式推奨デフォルトインストーラとしよう」という提案で、3.4から実際に標準搭載されるらしい。Pythonをインストールするとpip
Pythonユーザーが集まり、情報交換し、交流するためのカンファレンス「PyCon APAC 2013」が9月13日、14日に都内で開催されました。PyCon APACはこれまでシンガポールで開催されており、今回初めて日本で開催されました。 Pythonは日本ではあまり利用事例が多くありませんが、海外ではGoogleやDropboxなどで使われていることが知られ、人気のあるスクリプティング言語の1つです。Pycon APAC 2013の2日目の基調講演には、そのDropboxの3番目の社員であるRian Hunter氏が登壇、Dropboxの社内事例も交えてPythonの大規模開発について紹介しています。 基調講演の内容をダイジェストで紹介しましょう。 One Million Lines of Python このカンファレンスに呼んでいただけて大変光栄です。日本には初めて来ました。 僕が初
世の中のことをもっと知るにはどうしたら良いだろうと思うときがある。世の中の多くの事柄はログやデータに落とされる。Googleなどの検索サイトは良い例だろう。さて、そのログやデータをどうすれば良いのか? 多くの場合、視覚化が有効な手段となる。 まずは身の回りの日常的なデータやログを何とかしたい。ただ、日常のデータを視覚化するのに数十行以上のコードは書きたくない。まるで息をするかのごとく自然に視覚化を行いたいのだ。そのためには1~2行、長くて数行で済ませることが必要だ。そこでPythonとmatplotlibを使う。加えて、IPythonがあればなお良い。IPythonの導入については以前のブログ記事であるIPythonの埋め込みプロットが素晴らしいを参考にして欲しい。 まずは事前にnumpyとmatplotlibをインポートしておく。できればscipyも。 >>> from numpy im
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く