Python実用テクニック(一)
12423 ワード
Python実用テクニック(二)Python実用テクニック(三) X[:,v]は、truncate Xのいくつかの列(v=1に対応)を表し、vはブールベクトルであり、長さはXの列数に等しい である. X[v,:],truncate Xのいくつかの行を表し,vはブールベクトルであり,長さはXの行数に等しい である.
pythonのバージョンのクエリー
OS(WindowsまたはLinux)コマンドラインインタフェースの下:
pythonコマンド環境ですでに実行している場合は、次のようにします.
クエリー・パッケージのバージョン
requirements.txtファイルの使用
インストールする必要があるすべてのライブラリをファイル形式で統一的にインストールし、手動のライブラリとライブラリのインストールを回避します.
list comprehension
list comprehensionに判断ロジック(filter)を追加します.
[exp for x in seq if COND]
注意:[exp for x in seq and COND]でも[exp if COND for x in seq]でもありません.
フォーマット出力はもちろんformat
apiの意味
ipython:日付の表示
Enumerateとzipの組合せ
生成された各反復可能なオブジェクトは、2つのメタグループであり、メタグループの1番目のビットはそのシーケンス番号であり、2番目のビットはzipパッケージが返した内容である.
サンプリング
生成文字型
listA+listB(concatenateを表す)
2つのリスト間で加算する意味は、次のとおりです.
エラーメッセージは次のとおりです.
LeNet 5のソースプログラムでは、
chr()とord()
点数の表示及び点数の約分
X
が多次元配列タイプであることが知られている場合:pythonのバージョンのクエリー
OS(WindowsまたはLinux)コマンドラインインタフェースの下:
> python -V
Python 3.4.3 :: Anaconda 2.3.0 (32-bit)
pythonコマンド環境ですでに実行している場合は、次のようにします.
>>> import sys
>>> sys.version
'3.4.3 |Anaconda 2.3.0 (32-bit)| (default, Mar 6 2015, 12:08:17) [MSC v.1600 32
bit (Intel)]'
>>> sys.version[:5]
'3.4.3'
クエリー・パッケージのバージョン
>>> import library_name
>>> library_name.__version__
'*.*.*'
# dir(), list of strings
# __version__
requirements.txtファイルの使用
requirements.txt
ファイルは、一般に、サードパーティのライブラリ名および対応するバージョン情報を保存するために使用されます.numpy==1.9.2
Theano==0.7.0
インストールする必要があるすべてのライブラリをファイル形式で統一的にインストールし、手動のライブラリとライブラリのインストールを回避します.
.txt
ファイルがあるフォルダに切り替えます.pip install -r requirements.txt
list comprehension
list comprehension
(最外層が[ ]
)を使用する目的は、list(すなわちlist comprehensionがlistを返す)を簡潔に作成することです.listは反復可能なオブジェクトです.list comprehensionに判断ロジック(filter)を追加します.
[exp for x in seq if COND]
注意:[exp for x in seq and COND]でも[exp if COND for x in seq]でもありません.
>>> [i**2 for i in range(10) if i%2 == 0]
[0, 4, 16, 36, 64]
>>> type([i**2 for i n range(10) if i%2 == 0])
list
>>> for i in [i**2 for i in range(10) if i%2==0]:
print(i)
0
4
16
36
64
( )
で包まれているのはジェネレータタイプ(generator)であり、反復可能なタイプ(iterables)でもある.>>> type((i**2 for i in range(10) if i%2==0))
generator
>>> for i in (i**2 for i in range(10) if i%2==0):
print(i)
0
4
16
36
64
フォーマット出力はもちろんformat
>>> print(1/6)
0.16666666666666666 #
>>> print('{0}'.format(1/6))
0.16666666666666666 #
>>> print('{0:.2f}'.format(1/6))
0.17
>>> print('{0:.0f}'.format(1/6))
0 #
{:d}
の形式でfloatを出力することはできません.>>> print('{0:d}'.format(10.0))
ValueError: Unknown format code 'd' for object of type 'float'
>>> print('{0:.0f}'.format(10.0))
10
apiの意味
np.random.randn() ~ N(0, 1),
np.random.rand() ~ U(0, 1), [0, 1]
ipython:日付の表示
>>> !date
: 2015/12/19
: ( )
Enumerateとzipの組合せ
enumerate(zip(, ))
生成された各反復可能なオブジェクトは、2つのメタグループであり、メタグループの1番目のビットはそのシーケンス番号であり、2番目のビットはzipパッケージが返した内容である.
for i, (param, true, est) in enumerate(zip('ABCD', [A, B, C, D], plesq[0])):
plt.text(10, 3-i*.5, ''.format())
サンプリング
# data
n = len(data)
idx = np.random.randin(0, n, size=(nsamples, n))
samples = data[idx]
# samples shape (nsamples, n)
生成文字型
000000-999999
for i in range(1000000):
passwd = str(i)
if len(passwd) < 6:
passwd = (6-len(passwd))*'0'+passwd
print(passwd)
listA+listB(concatenateを表す)
2つのリスト間で加算する意味は、次のとおりです.
>>> [1, 2]+[3, 4]
[1, 2, 3, 4] # , extend
# ( ) 。
# ,
>>> [1, 2] + 3
TypeError: can only concatenate list (not "int") to list
エラーメッセージは次のとおりです.
can only concatenate list (not "int") to list
list
およびlist
のみがconcatenate
を行うことを許可し、list
およびint
をconcatenate
にすることはできない.LeNet 5のソースプログラムでは、
params = layer3.params + layer2.params + layer1.params + layer0.params
# params list
# params list
chr()とord()
>>> chr(65)
'A'
>>> ord('A')
65
>>> chr(ord('A')+1)
'B'
点数の表示及び点数の約分
>>> from fractions import Fraction
>>> Fraction(1, 2)
Fraction(1, 2)
>>> Fraction(2, 4)
Fraction(1, 2)