タグ

pythonに関するsnsn9panのブックマーク (11)

  • Pythonコードを35000倍に高速化したい

    はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々な処理系が開発されています。 この記事はPythonで書かれたコードを35000倍に高速化するにはどのような方法があるかについてまとめたものです。 この記事は: Pythonで書かれたアルゴリズムを35000倍に高速化する 事前コンパイル、並列化、SIMD演算を駆使する 最終的に44000倍まで高速化できた なぜ35000倍? 2023年5月2日にModular社よりPythonの使いやすさとC言語の性能を兼ね備える新しいプログラミング言語、Mojoの開発について発表がありました。低レベルのハードウェア向けにコンパイル可能なこと、文法的にはPythonを踏襲しており、既存のPythonライブラリを利用可能であること

    Pythonコードを35000倍に高速化したい
  • 奴隷制を連想させるとして、Pythonで「master」「slave」といった単語が削除される | スラド デベロッパー

    Pythonのバグトラッカーに、「Avoid master/slave terminology」という要望が寄せられている。これは「多様性のため」に奴隷制度を連想させる「master」「slave」という単語を削除するほうが好ましいという提案だ(Slashdot、Motherboard、Register)。 そもそも「master」という単語は非常に多くの場所で使われており、たとえばバージョン管理システムGitでは「masterブランチ」という概念がある。そのため、これを変更するのは容易なことではない。また、master/slaveという単語は電子回路やソフトウェアアーキテクチャにおいて奴隷制とはまったく関係ない文脈で使われている。そして、「slave」を置き換えられる単語で適切かつ広く普及している単語はいまのところ存在しない。こういった理由から反対の声も出ていたが、最終的には「salve

  • Pythonのfor文は遅い? - atsuoishimoto's diary

    bicycle1885.hatenablog.com こちらの記事を拝見していて、ちょっと気になったので注釈。 PythonやRを使っている人で、ある程度重い計算をする人達には半ば常識になっていることとして、いわゆる「for文を使ってはいけない。ベクトル化*1しろ。」という助言があります。 これは、PythonやRのようなインタープリター方式の処理系をもつ言語では、極めてfor文が遅いため、C言語やFortranで実装されたベクトル化計算を使うほうが速いという意味です。 昔からよくこういう言い方がよくされるが、当にPythonのfor文は遅いのだろうか。 聞くところによるとRのfor文はガチで遅いそうだが、Pythonの計算が遅いのはインタープリタ方式だからでも、for文が遅いからでもない。もちろん、Pythonはインタープリタなので遅いし、for文だって極めて遅い。しかし、これはPyt

    Pythonのfor文は遅い? - atsuoishimoto's diary
  • PythonでブラウザベースのGUIアプリを作るライブラリ、WDOMの紹介 - Blank File

    WDOMというPythonでブラウザベースのGUIアプリを作るためのライブラリを作っています。 ちょっとしたGUIツールを作ろうと思った時に満足できるものがなかったので作りました。 miyakogi/wdom: DOM manipulation library for python WDOMのターゲットは、あくまでブラウザベースのデスクトップGUIアプリです。 ローカルにWebサーバを立ち上げてブラウザ上に表示しますが、Webフレームワークではありません。 ちなみに、拙作LiveMark.vimもこれを使っています。 まだ開発中なので細かいバグはあると思いますし、後方互換性を崩すような変更が入る可能性もありますが、そろそろ試してもらえるくらいにはなってきたので使い方を中心に紹介します。 もしバグを発見したらGitHubのIssueに報告していただけると助かります。 関連記事 WDOMのテー

    PythonでブラウザベースのGUIアプリを作るライブラリ、WDOMの紹介 - Blank File
  • Python2のstr/unicodeとencode/decode - Qiita

    2種類の文字列 Python2には文字列が2種類ある。 ここではその2つを str文字列 および unicode文字列 と呼び、これらをまとめて 文字列 と呼ぶ。 公式ドキュメントでも用語があまり統一されていないので、とりあえずこう呼ぶことにする。 先に言っておくと、基的にunicode文字列を使うべき。 str文字列 '...' リテラルで生成されるオブジェクト UTF-8, Shift-JISなどの符号化方式によって各文字を符号化して得られるバイトを並べたもの 1文字が複数バイトで表現されることもある str文字列そのものは、符号化に使われた符号化方式の情報をもたない 符号化方式を知るには基的に片っ端から試すらしい 対話環境で 'あいう' と入力すると、 \x で1バイトずつ区切られたバイト列が返る

    Python2のstr/unicodeとencode/decode - Qiita
    snsn9pan
    snsn9pan 2016/12/06
    3使おう
  • 闇Pythonista入門(Pythonワンライナーのテクニック集) - cocuh's note

    世界には1行でプログラムを書くワンライナーという技巧的プログラミングの世界があります。 ワンライナーと言われる言語の多くはPerlRubyなのですが、委員長キャラのPythonでもワンライナーができます。 PEP8とZen of Pythonで綺麗になっているPythonicな世界に Pythonでも1行で書いたよ!楽しい!! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌ などと技巧プログラミングをする闇Pythonista(私)がテクニックなどもろもろをまとめたものがこの記事になってます。 まだPython力を鍛えている途中のわたしなのでなにか指摘などありましたらコメントをいただければです。 対象読者 Pythonをある程度かける人 Pythonの細かい挙動に興味のある人 白Pythonに飽きてしまった人 テクニック1:代入文を式にする Pythonでの代入は基改行が必要です。

    闇Pythonista入門(Pythonワンライナーのテクニック集) - cocuh's note
  • Python HOWTOs — Python 2.7.18 documentation

    This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release. Python HOWTOs¶ Python HOWTOs are documents that cover a single, specific topic, and attempt to cover it fairly completely. Modelled on the Linux Documentation Project’s HOWTO collection, this collection is an effort to foster documentation

    snsn9pan
    snsn9pan 2016/10/27
    python書き始める前に読むとだいぶ楽になる
  • all()とany()は意外と使える子かもしれない。 - podhmoの日記

    組み込み関数の中の使えない子 pythonの組み込み関数の中に以下の3つがあります。 reduce() all() any() これらの3つを組み込み関数のわりに使いどころが少ない。使えない子たちだと認識してました。 例えばall()、any()は、各シーケンス*1内の真偽値について、名前から推測できなそうな処理を行い、結果を真偽値で返すのですが all([True,True,True]) # => True all([True,True,False]) # => False any([True,True,False]) # => True any([False,False]) # => False 比較関数を引数として渡すことができません。sortedやsortなどの関数は、比較関数を引数として取れるのに不思議なものです。リスト内の全ての要素に対して評価を与えてその結果を真偽値として欲し

    all()とany()は意外と使える子かもしれない。 - podhmoの日記
    snsn9pan
    snsn9pan 2016/10/27
    cool
  • Scientific Linux 6.3のvim-powerlineインストールでハマったこと

    的なやり方はここを参照した。 iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する >setup.shでは、各設定ファイルへのシンボリックリンクを生成するのですが、すでにファイルが存在する場合はlnコマンドが失敗するので、その場合は適宜対処してください。 この箇所では、すでにファイルがある場合は既存ファイルの名称を変えるか、削除すること。 >最後に、vim-procをmakeします。 ここでは、makeするファイルを “make_unix.mak” とした。 (makeはスーパーユーザーでやったほうが安全かも…) ステータスラインを正しく表示するため、フォントにパッチを当てる。 使用するフォントはプログラミング用として有名なRicty(リクティ)を利用するため、予め作成しておく必要がある。 まず、ホームディレクトリに”.fonts”ディレクトリを

    Scientific Linux 6.3のvim-powerlineインストールでハマったこと
  • Genshi

    Genshi Python toolkit for generation of output for the web Genshi is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web. The main feature is a template language that is smart about markup: unlike conventional template languages that only deal with bytes and (if you're lucky) char

  • よくあるエラー - 西尾泰和のはてなダイアリー

    初心者が出しがちなエラーメッセージに関して、エラーメッセージが英語だからと読まずに飛ばす人が多いかと思って和訳をJythonに書いていたんだけど、どうせならここで公開して他に陥りがちなエラーメッセージの情報を集めた方がいいんじゃないかと思った。 "__add__ nor __radd__ defined for these operands"「その計算の対象にしているオブジェクトには__add__も__radd__も定義されていないよ(足し算が定義されていないよ)」→数が入っているつもりの変数にNoneが入っていたりするとかありがち。数を返すはずの関数がreturnしわすれでNoneを返すとか。 "global name 'x' is not defined"「'x'という名前の変数が(グローバルまで探しに行ったけど)見つからなかったよ!つづり間違ってない?」 "NameError: n

    よくあるエラー - 西尾泰和のはてなダイアリー
    snsn9pan
    snsn9pan 2008/05/07
    インデントが重要なのでタブスペースになってたりすると大変。タブ1個で1インデント、スペース1個で1インデント。
  • 1