タグ

Pythonとpythonに関するmasudaKのブックマーク (221)

  • Python Tips: リストの中の要素を要素別にカウントしたい

    import collections s1 = 'すもももももももものうち' count_dict = collections.Counter(s1) # => Counter({'も': 8, 'ち': 1, 'す': 1, 'の': 1, 'う': 1}) Counter クラスのインスタンスは、辞書のような形で要素とその個数を格納したオブジェクトとなります。 上の例では文字列 s1 を渡していますが、リストを渡した場合でも同様に動作してくれます。 この Counter インスタンスから各要素を取り出すには items() keys() values() など辞書型と同名のメソッドを使います。

    Python Tips: リストの中の要素を要素別にカウントしたい
  • Python ビット演算 超入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Python ビット演算 超入門 - Qiita
  • TensorFlowを算数で理解する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TensorFlowは主に機械学習、特に多層ニューラルネットワーク(ディープラーニング)を実装するためのライブラリになりますが、その基的な仕組みを理解するのにそうした難しい話は特に必要ありません。 記事では、TensorFlowの仕組みを、算数程度の簡単な計算をベースに紐解いていきたいと思います。 TensorFlowの特徴 初めに、TensorFlowの特徴についてまとめておきたいと思います。 TensorFlowは、その名前の通りTensor(多次元配列、行列などに相当)のFlow(計算処理)を記述するためのツールです。その特徴

    TensorFlowを算数で理解する - Qiita
  • TensorFlow 畳み込みニューラルネットワークで手書き認識率99.2%の分類器を構築 - Qiita

    TensorFlowとは2015/11/9にオープンソース化されたGoogle機械学習ライブラリです。この記事ではディープラーニングと言われる多層構造のニューラルネットワークをTensorFlowを利用して構築しています。 TensorFlowはPythonから操作できますがバックエンドではC++で高速に計算しています。macPython2.7系環境でTensorFlowの上級者用チュートリアルを行い、手書き認識率99.2%の多層構造の畳み込みニューラルネットワークモデルの分類器を構築したときの作業メモです。特別な設定なしにCPU使用率270%メモリ600MByteとちゃんと並列計算してくれました。MNISTランキングを見ると認識率99.2%は上位のモデルとなるようです。 TensorFlowチュートリアル TensorFlowの初心者用と上級者用チュートリアル2つに取り組んでみました

    TensorFlow 畳み込みニューラルネットワークで手書き認識率99.2%の分類器を構築 - Qiita
  • B木 - naoyaのはてなダイアリー

    昨年から続いているアルゴリズムイントロダクション輪講も、早いもので次は18章です。18章のテーマはB木(B Tree, Bツリー) です。B木はマルチウェイ平衡木(多分木による平衡木)で、データベースやファイルシステムなどでも良く使われる重要なデータ構造です。B木は一つの木の頂点にぶら下がる枝の数の下限と上限を設けた上、常に平衡木であることを制約としたデータ構造になります。 輪講の予習がてら、B木を Python で実装してみました。ソースコードを最後に掲載します。以下は B木に関する考察です。 B木がなぜ重要なのか B木が重要なのは、B木(の変種であるB+木*1など)が二次記憶装置上で効率良く操作できるように設計されたデータ構造だからです。データベースを利用するウェブアプリケーションなど、二次記憶(ハードディスク)上の大量のデータを扱うソフトウェアを運用した経験がある方なら、いかにディ

    B木 - naoyaのはてなダイアリー
  • Python の lambda 式の作成 - Python 入門

    Pythonlambda 式の書き方 lambda (ラムダ式, lambda expression) を用いると、匿名関数 (anonymous function) を定義できます。 lambda 引数1, 引数2, ... , 引数n : 引数を使う式 lamdba によって匿名関数オブジェクトが定義できる、ということがどういうことか、def と比較することでみていきましょう。 まず例として、 def を用いて足し算を行う add 関数を定義します。 def add(x, y): return x + y print(add(1, 2)) 実行結果は次のとおり。 3 次に lambda を用いて匿名関数オブジェクトを定義してそれを呼出します。 f = lambda x, y: x + y print(f(1, 2)) lambda の後、コロンまでが引数のリストで、コロンの後が

    Python の lambda 式の作成 - Python 入門
  • 隠れマルコフモデルの例

    隠れマルコフモデルの例 その2 Pythonで隠れマルコフモデルのFilteringの例 Pythonで隠れマルコフモデルのSmoothingの例 隠れマルコフモデルとは、システムがパラメータのわからないマルコフ性を持つとする確率モデルです。マルコフ性とはその過程の将来状態の条件付き確率分布が、現在の状態のみにより決まり、過去のどんな状態にもよらないという特性のことです。ここではこのモデルの例を記します。 ある友達が遠くに住んでいて、毎日何をしたかをあなたに電話で話します。友達は「散歩」「買物」「掃除」の3つのことにしか関心がありません。友達が何をするかはもっぱらその日の天気で決めます。あなたは友達が住んでいるところの天気の明確な情報は持っていません。でも、どんな傾向があるかは知っています。友達が日々電話で話す出来事に基づいて、友達が住んでいるところの天気を推定してみましょう。 天気は離散

    隠れマルコフモデルの例
  • バイナリーサーチ/二分探索 : アルゴリズム

    バイナリーサーチ(二分探索とも呼ばれる)はソート済みの配列において、検索する間隔を半分に分割しながらデータを探し出すアルゴリズムです。 ソート済みの配列を分割するということはバイナリーサーチツリーを生成することになります。 検索範囲の分割はデータの大小関係をもとに行われます。 アルゴリズム分析 配列をソートする(ここでは昇順でソートされたとする) 配列の中央にある要素を調べる 探索 中央の要素が目的の値ではなく、目的のデータが中央の値より大きい場合、中央より後半の部分を調べる 中央の要素が目的の値ではなく、目的のデータが中央の値より小さい場合、中央より前半の部分を調べる 2.に戻る 図解 注意 バイナリーサーチは値の比較によって検索範囲を絞りこむので、探索対象の配列がソートされていなければなりません。 サンプルコード 配列から目的の値を検索するバイナリーサーチのサンプルコードです。 C言語

  • 2015年センター試験数学IAを全てプログラム(Python)で解く - Qiita

    この記事はなんなの 「センター試験程度であれば、数式と文章を愚直にプログラムに落としこむことさえできれば、昨今のツールを用いて、何も閃かずとも機械的に問題を解くことが出来る」ということの主張 科学計算ライブラリ(特にSympy)の布教 将来、働き先がなくなったとき、「私、私こういうことができるんです!!」って言えばどこかが拾ってくれないかなあ、という夢 使用するもの Python (3系) Scipy.org に載っている科学計算ライブラリ全て(タグが足りない!!) 共に、2015年6月現時点での最新版を使用します(特に、Scipyは今年1月に実装された最新版の機能を使用するので注意してください)。 数々のライブラリを一つ一つインストールするのはすごく面倒です。面倒なので、有名どころを固めたパッケージのようなものが複数存在します。 個人的にはいつもAnacondaを使ってまとめてインストー

    2015年センター試験数学IAを全てプログラム(Python)で解く - Qiita
    masudaK
    masudaK 2015/11/10
    "物理数学の授業を受けた時、「Mathematicaなんて使ってはいけない」ということを教えられました。これに対し、留学し国外で教育を受けた時、「自分で計算するやつは馬鹿」と言い切られたのをよく覚えています。"
  • pythonで2次元辞書を使う(2次元ディクショナリ) | rakkyooの備忘録

    Pythonでプログラムを作っているときは,Pythonの辞書-ディクショナリ-(Perlの連想配列,rubyのハッシュ)を頻繁に使うのですが,2次元で使いたいときの方法をいつも忘れてしまうので,備忘録です. 2次元辞書のイメージとして,

    masudaK
    masudaK 2015/11/02
    こういう使い方できるのか。できないかと思って途方に暮れてたので助かった
  • How can I flush the output of the print function?

    How do I force Python's print function to flush the buffered output to the screen? See also: Disable output buffering if the goal is to change the buffering behaviour generally. This question is about explicitly flushing output after a specific print call, even though output is still being buffered. For duplicate closers: if a beginner is asking a question about trying to make output appear immedi

    How can I flush the output of the print function?
    masudaK
    masudaK 2015/08/27
    昔ハマった記憶がある。ブログあとで書こう。
  • Pythonらしいコードの書き方 - Kesinの知見置き場

    はてなブログに移行して最初の記事はやはりPythonネタにしました。 はてなブログいいですね。デザインの編集がやりやすくなったのと、Markdownで書けるのが素晴らしいです。 PyCon 2013の動画を見ていたら、素晴らしい"Transforming Code into Beautiful, Idiomatic Python"という発表を見つけたのでそのまとめです。 今どきのPythonコードのベターな書き方を紹介しています。 Transforming Code into Beautiful, Idiomatic Python ... スライドはこちらにありました 結構長くなってしまったので、知ってる項目は読み飛ばしてもらえばと思います。 ループの基 整数のループ まずは基のループ。 Cのfor int i=0; i<6; i++をPythonで単純に書くとこうなります。 for

    Pythonらしいコードの書き方 - Kesinの知見置き場
  • Python 3.5、async/await非同期プログラミングをサポート予定

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Python 3.5、async/await非同期プログラミングをサポート予定
  • Pythonエンジニア養成読本 | 技術評論社

    概要 PythonGoogleをはじめ米国Web系企業で広く使われてきましたが,国内でもWebはもちろんのこと,豊富なライブラリを用いてさまざまな場面で開発が行われています。最近ではデータ分析や統計でもよく利用されるようになりました。書は,Pythonによる開発を行うために知っておきたい知識を1冊にまとめた書籍です。Python歴史や特徴に始まり,言語入門,開発環境,Web開発,データ活用,環境構築まで,現場で活躍するために必読の知識をわかりやすくまとめました。 目次 第1章 その特徴,歴史とコミュニティ よくわかるPythonの世界…… 鈴木 たかのり 1-1:バッテリー付属,PEP,The Zen of Python Pythonの特徴 1-2:20年にわたる開発の歴史と1系,2系,3系の違い その歴史とバージョン選定のポイント 1-3:参加して世界を広げよう Pythonのコミ

    Pythonエンジニア養成読本 | 技術評論社
    masudaK
    masudaK 2015/04/04
    買うかー
  • pypiにパッケージを登録して、setup.pyの「scripts」と「console_scripts」の違いを比較してみた - カイワレの大冒険 Second

    みなさま、Pythonのパッケージ化はしたことありますでしょうか?最近以下のような記事を書きましたが、ツールを作ったものの、それを配布しようとなると、Pythonのパッケージ化に関して分からないことがあり、pypiにパッケージを登録して試してみました。 Python製コマンドラインツールのディレクトリ構成について。その考察 setup.pyには何を書くべきか これらの記事を書いたときの自分の考えは以下のとおりです。 「pip install -e .」してコマンドにパス通すの、微妙すぎる setup.pyで、scriptsなりconsole_scriptsを使えば、コマンドが/usr/bin配下にインストールされパスを通すことができるので、どちらかでやったほうがいい 前者であればmain関数を用意せずとも、ファイル名を書くだけなので、そのほうが楽だと思える コマンドにパスを通すという観点で

  • pythonパッケージ管理についてのまとめ(distutils,setuptools,distribute,pip,easy_install)[2014年版] - hikm's blog

    前提 pythonのパッケージ管理は、進化の歴史がとてもややこしいので混乱を招きがちです。 Web上の情報には古いものも多いです。このため、pythonのパッケージ管理に関するブログ記事等を参考にする場合は、記事の記載日時を確認して、なるべく新しい情報を参考にした方が良いです。古い情報と新しい情報で逆の事が書いてあったりするので、気をつけないと混乱します(例えば、distributeを使え!という情報、distributeを使うな!という情報の両方があったりします)。 先に結論 結局pythonのパッケージ管理には何を使えば良いの?という疑問に対して、手っ取り早く結論を書いてしまうと、 setuptools pip を導入すれば問題ないと思います(2014年7月時点)。 pythonのパッケージ管理について はじめに pythonのパッケージ管理では、setup.py, distutil,

    pythonパッケージ管理についてのまとめ(distutils,setuptools,distribute,pip,easy_install)[2014年版] - hikm's blog
  • 今どきのPythonのライブラリ自作からPyPIへの登録 - Qiita

    自分のライブラリをPyPIに登録したい ...が、PythonにはRubybundlerのようなものが なく、(合ったとしても統一されてないと思う) プロダクト別に自由なディレクトリ構成になっている状態... せめて自分のプロダクトについては統一したいなあと思ったので Pythonのライブラリを作る場合のディレクトリ構成や 環境構築などについてメモを書く。忘れちゃうので... 利用するPythonのバージョンは3.3以降を意識してる。 それより前(3.2, 3.1...2.x)は考慮しない。問題無いと思うけど... テスト目的で作成したライブラリ **fizzbuzz**というアレなライブラリを作った。 ライブラリというかコマンドラインツールだけれど。 このライブラリの構成を元に、メモを書いていく。 ライブラリのディレクトリ・ファイル構成 以下のディレクトリ・ファイル構成とする。 fiz

    今どきのPythonのライブラリ自作からPyPIへの登録 - Qiita
  • Python入門 : 4日間コース社内トレーニング

    The document describes various probability distributions that can arise from combining Bernoulli random variables. It shows how a binomial distribution emerges from summing Bernoulli random variables, and how Poisson, normal, chi-squared, exponential, gamma, and inverse gamma distributions can approximate the binomial as the number of Bernoulli trials increases. Code examples in R are provided to

    Python入門 : 4日間コース社内トレーニング
  • Python の argparse モジュールを使う

    Python の引数処理モジュールである argparse を使ってみます。 そろそろ Python 3.3 で作業を始めるべきでしょうし、いつまでも Python 2.4 のことを考えていても窮屈なためです。 Python の標準ライブラリを使った引数処理には、次のような段階があると思います。 sys.argv を使った原始的な方法 getopt モジュールを使った Unix 系の伝統的な方法 optparse モジュールを使った Python 2.4 などもターゲットにした方法 argparse モジュールを使った最近の方法 Argparse Tutorial には次のように記載されています。 There’s two other modules that fulfill the same task, namely getopt (an equivalent for getopt() f

  • http://kwatch.houkagoteatime.net/blog/2014/08/24/python-pitfalls/