PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 本稿では3言語の連想配列の従来実
はじめに インストールすればすぐに書けて動かせるのが魅力のPythonですが、 実際に業務などでキチンと書こうと思ったら Pythonのバージョン管理ツール パッケージマネージャー エディター(IDE) リンター フォーマッター 型チェッカー くらいは最低限用意する必要があります。 しかしこの界隈、怒涛の勢いで日々新しいものがリリースされていて一概に「これがベストプラクティス」を提示するのが難しいんですよね。そこで今回は上記それぞれのツールについて「こんなものがあるよ」というのをご紹介したいと思います。 TLDR バージョン/パッケージ管理はpyenv + Pipenvがスタンダードだった時代は終わった VS CodeかVimを使うなら型解析にPyrightを導入するとよい テンプレートを用意しました 1. バージョン/パッケージマネージャー プロジェクトごとに異なるPythonのバージョ
GMOアドマーケティング SSP開発チームのKA.Mです。普段はSSPに関わる問い合わせ対応、配信、バックエンド、バッチとSSPに関わるシステム開発をしています。 本日は日頃エンジニアチーム内で行っている社内勉強会の1つである機械学習勉強会のエントリーとなります。私は大学時代に統計の基礎は学びましたがそこから10年という年月が経ち知識も風化しつつあり、この機会を利用して改めて知識を整理し業務に役立てようと勉強会に参加しています。 今回のテーマは分散分析(英:analysis of variance、略称:ANOVA)の一元配置法について学びましたので、ざっくりではありますが概要を説明したいと思います。 まず、分散分析とはどのようなものなのか。Wikipediaには以下のようにあります。 観測データにおける変動を誤差変動と各要因およびそれらの交互作用による変動に分解することによって、要因およ
何度もハマるので頭に刻み込む様に調べて習得するよ 前提 検証環境 実行は全てtreeコマンドを実行したパスと同パスでREPLを起動して行っている Pythonは2.7.5 パッケージとは Pythonでは__init__.pyを含むディレクトリをパッケージと言う ただのディレクトリでは再帰的にモジュールを検索しないため、基本的には__init__.pyが必要 読み込み時に検索する範囲 実行ディレクトリと同ディレクトリ カレントディレクトリ 環境変数「PYTHONPATH」に列挙したディレクトリ sys.pathに含むディレクトリ sys.pathは絶対パスの文字列リストであり、import sys; print sys.path 等の方法で確認できる 実例 同ディレクトリのメソッドをimportする
pandas は可視化のための API を提供しており、折れ線グラフ、棒グラフといった基本的なプロットを簡易な API で利用することができる。一般的な使い方は公式ドキュメントに記載がある。 Visualization — pandas 0.17.1 documentation これらの機能は matplotlib に対する 薄い wrapper によって提供されている。ここでは pandas 側で一処理を加えることによって、ドキュメントに記載されているプロットより少し凝った出力を得る方法を書きたい。 補足 サンプルデータに対する見せ方として不適切なものがあるが、プロットの例ということでご容赦ください。 パッケージのインポート import matplotlib.pyplot as plt plt.style.use('ggplot') import matplotlib as mpl m
必要なもの 標準的な Python の科学技術環境 (numpy, scipy, matplotlib) Pandas Statsmodels Seaborn Python と依存ライブラリをインストールするのにに Anaconda Python か Enthought Canopy をダウンロードするか、Ubuntu や他の Linux ならパッケージマネージャーを利用する、ことをおすすめします。 参考 Python での Bayesian 統計 この章では Bayesian 統計については扱いません。Bayesian モデリングに関して特化したものとしては PyMC があり、 Python での確率を扱うプログラムを実装しています。 ちなみに どうして統計に Python を使うのか? R は統計に特化した言語です。Python は汎用の言語で、統計モジュールを持っています。R は P
Pandasのグラフ描画機能 この記事ではPandasのPlot機能について扱います。 Pandasはデータの加工・集計のためのツールとしてその有用性が広く知られていますが、同時に優れた可視化機能を備えているということは、意外にあまり知られていません。 この機能は Pandas.DataFrame.plot() もしくは Pandas Plot と呼ばれるものです。 Pandas Plotを使いこなすことが出来るようになれば、 データの読み込み、保持 データの加工 データの集計 データの可視化 というデータ分析の一連のプロセスを全てPandasで完結させることが出来る、つまり分析の「揺りかごから墓場まで」を実現することが出来ます。 Pandasのプロット以外の機能について この記事ではPandasのデータハンドリングなどに関わる機能は説明しません。 そちらにも興味がある方は下記の記事などを
NGINX Unitが正式リリース。PHP、Go、Pythonなどに対応した軽量アプリケーションサーバ オープンソースで開発されている軽量なアプリケーションサーバ「NGINX Unit」の正式版がリリースされました(「Announcing NGINX Unit 1.0 | NGINX」)。 NGINX Unitは、軽量なWebサーバとして知られるNGINXの開発者であるIgor Sysoevが設計し、NGNIXのソフトウェア開発チームが実装を担当したもの。昨年の9月にパブリックプレビュー版が登場しており、今回それがバージョン1.0に到達しました。 参考: 日本Nginxユーザ会が発足。開発者Igor Sysoev氏が語る、Nginxが生まれ、商用化された理由 - Publickey NGINX Unitの主な特長は、動的制御が可能なためコンフィグレーションやアプリケーションの入れ替え、バー
Python でインストール済みのライブラリをまとめてアンインストールする方法をご紹介します。 大きな流れは次のとおりです。 インストール済みのライブラリをリストアップ リストを編集 pip uninstall コマンドでアンインストール 以下順に見ていきます。 1. インストール済みのライブラリをリストアップ まずは、どんなライブラリがインストールされているのかチェックします。 もしものときのために復元用をバックアップしておくのがよいでしょう。 requirements_bk.txt は復元用、 uninstall.txt はアンインストール用です。 2. リストを編集 uninstall.txt を編集し、「削除したいライブラリ」のみの一覧を作成します。削除したいライブラリはリストに残し、残しておきたいものはリストから削除します。 たとえば次のような感じにします。 cssselect=
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
1. re:G ene rate AWS マイスターシリーズ AWS SDK for PHP & AWS SDK for Ruby & boto(Python) & JavaScript in Node.js 2013.12.20 アマゾン データ サービス ジャパン株式会社 ソリューションアーキテクト 今井 榎並 蒋 © 2012 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc. 2. ウェビナー(Webセミナー)へようこそ! ! 参加者は、⾃自動的にミュートになって
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く