はじめに Pythonで日本語を扱おうとすると「UnicodeDecodeError」、「UnicodeEncodeError」に悩まされるというのをよく聞きます。 私自身もこれまではエラーが発生してもなんとなく曖昧な理解で乗り切ってきましたが、以下の記事を読んで色々と調べたら自分なりにスッキリしたので、整理した内容についてサンプルコードを交えながらまとめたいと思います。 UnicodeDecodeError/UnicodeEncodeErrorに悩まないPython 2.x プログラミング なお、以下の説明はPython2.xを対象とした内容になっています(基本的な考え方はPython3でも同じです) ポイント Pythonの文字列型について 文字列(str型)とユニコード文字列(unicode型)は別物 「str型」 純粋なバイトの列(中身はutf8でエンコードされたバイト列だったり、
本稿は、ブダペストで開かれたイベント「 RuPy 」で、Pat Shaughnessyが披露したプレゼンの内容をまとめたものです。 プレゼンの映像はここ から視聴できます。 本稿は当初、 同氏の個人ブログ に投稿されましたが、同氏の了承を得て、Codeshipに再掲載します。 このイベントは「RubyとPython」に関するカンファレンスなので、RubyとPythonでは、ガベージコレクション(以下「GC」)の動作がどう違うのかを比較すると面白いだろうと私は思いました。 ただしその本題に入る前に、そもそもなぜ、GCを取り上げるのかについてお話しします。正直言って、すごく魅力的な、わくわくするテーマではないですよね? 皆さんの中でGCと聞いて、心がときめいた方はいらっしゃいますか? [実はこのカンファレンス出席者の中で、ここで手を挙げた人は数名いました!] Rubyコミュニティで最近、Rub
久しぶりに技術関係のネタ書きます. 「言語処理100本ノック」という,自然言語処理関係の問題集があることを知ったので取り組んでみました. これは,東北大学の乾・岡崎研究室でのプログラミング勉強会にて使われている教材だそうです. 「100本ノック」の言葉通り,100問の問題からなる問題集をこなすことで,自然言語処理に関する基礎力と,プログラミング言語運用能力が同時に培えるようになっています. こういうものが公開されるとは,「いい時代になったなー」と純粋に思います. www.cl.ecei.tohoku.ac.jp 内容は,自然言語処理だけでなく,データベース,機械学習など,今の言語処理関係の研究に必要なスキルがこれ1つで身につくように設計されています. 対象プログラミング言語はPythonのようですが,基本的に他の言語でも問題なく進められるようにはなっていると思います(言語処理に強いプログラ
イントロダクション このチュートリアルでは、とあるデータサイエンティストの典型的な1日の過ごし方をご案内しましょう。まず地理空間のデータセットを入手し、不要なものを整理し、補強し、可視化します。使用するツールはPython、BeautifulSoup、pandasとNominatimライブラリ、そして地理情報システムの組織で広く使われているオープンソースの地図ソフトウェア、 QGIS です。 データセットになるのは、全米UFO情報センター(NUFORC)の このページ に掲載されているアメリカ全土のUFO目撃情報です。目標は、過去12カ月間に目撃されたUFOの地図を可視化することです。可視化によりデータセットをはっきりと示し、調査して、目撃されたとされるUFOの行動をよりよく理解することができます。可視化は地図作成プログラム内で行われます。QGISは地理空間データの手軽な試験的分析に特に向
今回は「ほぼRしか使ったことがない」人間*1が、できる限り二者の優劣をくっきり述べる。 僕はほとんどRしか使ったことがない。Pythonはtfidfやクイックソートをライブラリ無しで実装した程度。 前半の主張は以下である。 「過去のRでの10回程度の解析において、Rで不十分さを感じてPythonを使った経験は1度だけ、しかも部分的にしかなかった。Rの使いにくさを感じることも最近はだいぶ無くなった。だから初学者には「事足りる」Rを勧める。」 前半の主張 今までにRでやった解析の内容は大体以下である。 (未発表)は途中で頓挫した、もしくは現在進行中/契約により詳細&解析結果の公開不可能のプロジェクトである。 [ビジネス・製造業] 米国新車価格の線形重回帰分析(授業の期末課題) [ビジネス・不動産] 不動産賃貸価格の線形重回帰分析(発表スライド) [ビジネス・IT] EコマースサイトのARIMA
この10年間で、3つのメジャーなプログラミング言語が、それぞれPerl 6、Python 3、PHP 6へと大幅なバージョンアップに乗り出しました。ところが、Unicodeのサポート問題などの表面的な類似点があるにも関わらず、根本的に異なった展開を見せています。 今年Perl 6.0.0が公式にリリースされるのに伴い、いま一度振り返って、リリース後の展開について考えてみるのに、今はちょうどいいタイミングでしょう。 これを書いていることが自分でも信じられないのですが、PHPから学ぶべきことがあるかどうか見ていきましょう。Zend TechnologiesのCEOであるAndi Gutmans氏は2008年2月の インタビュー でこう答えています。 我々はPHP 6に対し長いサイクルでのロールアウトを予想している。Perlプロジェクトに対しては、プロジェクトのコントリビューターがいまだPerl
こんにちは、得居です。最近は毎晩イカになって戦場を駆けまわっています。 本日、Deep Learning の新しいフレームワークである Chainer を公開しました。 Chainer 公式サイト GitHub – pfnet/chainer Chainer Documentation Chainer は、ニューラルネットを誤差逆伝播法で学習するためのフレームワークです。以下のような特徴を持っています。 Python のライブラリとして提供(要 Python 2.7+) あらゆるニューラルネットの構造に柔軟に対応 動的な計算グラフ構築による直感的なコード GPU をサポートし、複数 GPU をつかった学習も直感的に記述可能 ニューラルネットをどのように書けるか 次のコードは多層パーセプトロンの勾配を計算する例です。 from chainer import FunctionSet, Vari
少女:聞きたいことがあるんだけど。プログラミングとかする? 少年:しない。 少女:前に何かちょこちょこっと作ってたことなかった? 少年:コンピュータ周りの雑用をやらせるスクリプトのこと? 大抵は数行くらいの使い捨てだけど。繰り返し使ってるのは、近代デジタルライブラリーからダウンロードして一つのファイルにまとめる奴くらい。 少女:あ、それ欲しい。そういうのってどうやったら作れるようになるの? 少年:うーん、こういうのは禁煙さんが詳しいんだけど。よく使ってるのはPythonってプログラミング言語だけど、これも禁煙さんのオススメだったし。 少女:そうなんだ。ねえ、今度一緒に禁煙さんとこ行かない? 少年:いや、それはちょっと。 少女:あれ?苦手だっけ? 少年:少し。コンピュータの話になると、あの人ちょっと…・・・。 少女:ふーん。じゃあ禁煙さんに教わったこと、教えて。 少年:教わったっていっても大
Matthew Griffithさんのブログ記事 MECHANICAL ELEPHANT - Becoming Productive in Haskell comming from Pythonの翻訳です。そういえばProductive Programmerって本にもHaskellを使って実証実験する話が出てました。Haskellは何度も勉強しようとして途中で止まっては忘れを繰り返しているので見習いたいと思います。 最近になってようやく私は生産性を高められるぐらいHaskellに熟達してきました。そこでHaskellを学習してきた経験について、それらを忘れてしまう前に私の考えを書き留めておこうと思います。今や私はWebプロトタイピングのほとんどをHaskellで行っています。まだ普段はPythonを使い、また楽しんでいるにも関わらず、です。 Data First(データが第一) これは動的
Keynote - Jacob Kaplan-Moss - Pycon 2015 - YouTube The programming talent myth [LWN.net] PyCon 2015で、Djangoの貢献者であるJacob Kaplan-Mossが興味深い基調講演をしているので紹介する。LWM.netでほぼ全面書き起こしに近いまとめがあったので助かった。 自己紹介 Kaplan-MossはDjangoの貢献者であり、Herokuのセキュリテイ部門の部長である。PyCon参加者としては歴史が長く、その他のカンファレンスでもよく発表している。Pythonコミュニティは「自分にとってこの業界におけるとても重要なもの」であり、PyConの基調講演を行うということは、「自分のキャリア上の絶頂」である。 自分の最初のPyConの発表は2005年のことで、PythonとAppleScri
コマンドラインで作業をしていると、タイプミスや誤入力でエラーが表示されて「イラッ」とした経験を持つ方もいるかと思います。 こんな時、海外ならば「Fuck!(クソッ)」という汚い言葉使いになってしまうでしょう…。 ところが、それを逆手にとって「fuck」とそのまま入力するだけで、誤ったコマンドを自動修正して再実行してくれる便利ツール「The Fuck」が公開されていたのでご紹介! 使い方!一体どのように使うのか、いくつか事例が掲載されているので見ていきましょう。 例えば、何らかのツールをインストールしようとして、管理者権限「sudo」を付け忘れてエラー…、みたいなよくあるパターン。 $ apt-get install vim E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Una
Pythonで機械学習アプリケーションの開発環境、具体的にはNumpy/Scipy/scikit-learnを導入する手順について解説します。 なお、環境はPython3ベースを想定しています。 Minicondaベース(推奨) 機械学習系のパッケージはコンパイルが面倒なものが多いため、コンパイル済みバイナリをインストールできるconda(Miniconda)での環境構築を推奨します。 まずはPython本体(Python3想定)、パッケージ管理ツールであるpip、仮想環境を作成するvirtualenv、といった基本的な環境の構築を行います。 ※virtualenvについては今回(condaを使う場合)は不要ですが、Pythonで開発を行うなら入れておくべきパッケージなので併せて入れておきます。 Mac/Linux デフォルトのPythonと分けてインストールするため、pyenvを利用しま
Japont (日本語Webフォントのダイナミックサブセット化) について Japontの実装のお話です. わかりやすく書くつもりです. これを読んで,もっといいダイナミックサブセット化OSSを作ってくれると僕が喜びます. 日本語Webフォントの問題点 データ量が多い 必要な文字だけを抽出したフォントを作っておく(静的) サブセッティング(サブセット化) 使う文字列が固定である必要がある 必要な文字を動的に調べ,抽出したフォントを作る(動的) ダイナミックサブセッティング(サブセット化) フォントを抽出するためのサーバとシステムが必要 今回やったこと フォントを抽出するためのシステムの開発(OSSとして公開) おおまかな仕組み 必要な文字を調べる(javascript) 必要な文字をサーバに送信(javascript) 受け取った文字のコードを調べる(python, fontforge)
2ヶ月前のエントリーにはてブが入りまくった件で「そういえば続編書いてないや」と気が付き、エントリーしますた。 「誰でも」の定義および、このエントリーの対象読者について 「誰でも」というのは、 (エンジニアなら)誰でも という意味です。 より具体的には、 野球愛溢れるエンジニアにとって、Vagrant + Ansibleでのサーバー構築の練習&Pythonでのプログラミングという趣味実益を兼ねたいい感じのお勉強なるかつ、趣味の野球でhackが出来る二度美味しい内容です 野球に興味が無い方にとっては野球愛溢れるエンジニア同様サーバー構築&Pythonネタとしていい勉強になるかもです。ただ、他にももっといいエントリーがあると思います 非エンジニアの野球ファンの皆さまにとっては(小難しい的な意味で)ヘビーな内容となっていますので、覚悟してお読みください!ただ、プログラミングを覚えたい方にとっては凄
俺の半生大学の一般教養でPascalを習った程度。専門課程に入る前に文法はすっかり忘れた。専攻は都市工学だからその後プログラミングとは縁はなかった。卒業前に第一種情報処理技術者の資格だけはとれてたのでプログラミングの何たるかとかオブジェクト指向なんかも知識としては知ってた。 大学卒業後にデスクトップユーティリティーのメーカーで技術営業をやった。顧客に製品仕様を説明するのが主な仕事なのでパワポばかり使ってた。その会社ではLinuxのソフトも販売してたから、Linuxのコマンドは打てるようになった。そこでシェルスクリプトを習得しようと思ったがあえなく挫折。 その後ネットワーク機器のメーカーに転職。トラブルシューティングでLinuxをさらに使うようになった。そこではHTTPプロキシを主に扱っていたので、HTTPプロトコルについては一通り知識を身につけた。その知識を実際にLinux上でシミュレーシ
システムの構築、新しい技術の習得、PythonやDevOpsなどに情熱を注ぐソフトウェア開発者です。現在はチューリッヒを拠点とするビッグデータのスタートアップで働いており、データ分析およびデータ管理ソリューションのためのPythonの技術を磨いています。 1 はじめに Python は開発時間を短縮できるという点で一般的に評価の高い言語です。しかし、Pythonを使って効率よくデータ分析をするには、思わぬ落とし穴があります。動的かつオープンソースのシステムであるという特徴は、初めは開発を容易にしてくれますが、大規模システムの破綻の原因になり得ます。ライブラリが複雑で実行時間が遅く、データの完全性を考慮した設計になっていないので、開発時間の短縮どころか、すぐに時間を使い果たしてしまう可能性があるのです。 この記事ではPythonやビッグデータで作業をする時に、最も時間を無駄にしがちな事柄につ
これは、関数型プログラミングの特徴を Python で説明した長編ポエムです。 IQ145 の美少女は出てきませんので、過度な期待はしないでください。 【対象読者】 関数型言語は知らないけど関数型プログラミングの初歩を勉強したい人 (Python を知らなくてもなんとなく分かるように書いたので、PHP や Java や JavaScript の人も読んでみてください) 【連載記事】 第1回 関数を受け取る関数は便利だよ編 (←今ココ) 第2回 関数を生成する関数はすごいよ編 はじめに 「なぜ関数プログラミングは重要か」という文章があります。タイトルの通り、関数型言語がいかに役に立つかを紹介している文章です。長いですが、3 行でまとめるとこんな感じ: ソフトウェアがどんどん複雑になるので、モジュール化が重要 関数型言語は、強力なモジュール化機能を提供している 特に「高階関数」と「遅延評価」が
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く