python

numpyのndarrayを使った行列操作練習帳 その2

前回の続きです。 行列の情報を取得 行列のサイズを取得するには.shapeを使います。 >>> a = numpy.arange(35).reshape(5,7) + 10 >>> a array([[10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31, 32, 33, 3…

numpyのndarrayを使った行列操作練習帳 その1

pythonのnumpyパッケージで操作の中心となるのはndarrayクラスです。ndarrayクラスは1次元配列にも2次元配列にもそれ以上の次元の配列にもなりますが、ここでは2次元配列、つまり行列として利用する場合に焦点を絞って、操作法を練習します。 行列の作成 行…

Python 3.4の導入メモ - pipとpyvenv

Python 3.4をWindows 7にインストールしました。パッケージ管理周りの情報が錯綜してややこしいので、自分で調べたことをメモしておきます。 Installation & Packaging Tutorial — Python Packaging User Guide documentation を大いに参考にしています。 nu…

Pythonでimportしたモジュールの場所を調べる

例えばimport numpyで読み込んだnumpyモジュールのソースコードの場所を知りたいときは、 import numpy print(numpy.__file__) とします。表示例は以下のとおりです。 '/usr/lib/python3.2/site-packages/numpy/__init__.py' またinspectモジュールのgetfile…

Python 3で高階関数やラムダ式の練習

高階関数 Pythonでは、関数の引数として関数をとることができます。関数を引数としてとったり、関数を戻り値として戻したりできる関数のことを高階関数と呼びます。 filter() 高階関数の代表はfilter()です。filter()を使うと、シーケンスのうち条件にあう要…

Python 3で小数点以下n桁を表示する

C/C++でいうprintf("%.20f", val)のように、小数点以下n桁を表示するには以下のように書く。これは小数点以下20桁を表示する例。 val = 1 / 3 print("{0:.20f}".format(val)) 結果は以下の通り。 0.33333333333333331483 この書き方苦手だ…

Python 3でm x nの2次元配列を定義する

たとえば3x5の2次元配列(要素はすべて0)を定義するには以下のように書く。 >>> matrix = [[0 for i in range(5)] for j in range(3)] printすると以下のようになる。 >>> print(matrix) [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

Python 3に再入門中 - Dive Into Python 3 と Check iO

Pythonを本格的に習得しようと勉強を始めた。まずはPython 3のチュートリアルである 目次 - Dive Into Python 3 日本語版 を12章まで読み終わった。このチュートリアルは明快で面白く読み進められるのでかなり良かった。練習したことを忘れにくくするためにm…

Pythonでの式(Expression)と文(Statement)

Python2ではprintは文(Statement)であったが、Python3ではprintは式(Expression)になった、という記述をよく見る。しかしその違いがよく分からなかったので調べてみた。嘘を言っているかもしれない… 式(Expression) 式とは、評価されることによって、何らか…

Python 3ではまったこと

Python 2.xの知識もたいしてないのにもかかわらずPython 3.xのコードを書いていると、細かい違いでハマることが想像以上に多い。ここではそんなハマりどころをまとめておく。 printが文から式になった Python 2.xでは print "aaa"と書けたのに、Python 3.xで…

標準入力から文字を読み込む

プログラミングコンテストでPythonを使うとき用に、標準入力から文字や数字を読み込む方法をまとめる。 一行分を文字列として受け取る 標準入力が以下として aa bb cc dd ee以下のPythonコードで受けると、 #!/usr/bin/env python # -*- coding: utf-8 -*- s…

Pythonで、文字列の一部の文字を変更する

Pythonの文字列は、作成後に変更することができない。 例えば、ある文字列strの3文字目を'z'に書き換えるつもりで以下のようなコードを書くと #!/bin/env python # -*- coding: utf-8 -*- str = "abcdefghi" str[2] = 'z' 以下のようなエラーが出て実行がで…

Pythonではまったこと

インクリメント ある整数を格納した変数をインクリメントしようと、CやPerlを書く時と同じような気持ちで以下のコードを書いた。 num = 10 ++num print numエラーも警告もなく実行されるが、表示される値は意図に反して 10であった。Pythonではインクリメン…

Pythonでの正規表現の簡単なまとめ

Pythonでの正規表現の使い方を勉強した。Perlの正規表現とパターンの書き方はほぼ同じのようだけど、その他の部分はかなり違っている。あまり良いページが見つけられなかったので、正規表現 HOWTO — Python 3.3.3 ドキュメントを読んで簡単にまとめた。この…