PythonでNumpyを使い始める

1、 ナンピーとは

非常に単純なNumpyは、Pythonの科学コンピューティングライブラリであり、マトリックス操作の機能を提供します。これは通常、Scipyおよびmatplotlibと一緒に使用されます。実際、listはすでにマトリックスに似た表現を提供していますが、numpyはより多くの機能を提供します。 matlabとscilabに触れたことがある場合は、numpyが出発点として適しています。次のコード例では、numpyが常に最初にインポートされます。

コードは次のように表示されます。

import numpy as np
print np.version.version
1.6.2

2、 多次元配列

多次元配列のタイプは、numpy.ndarrayです。

numpy.arrayメソッドを使用します

リスト変数またはタプル変数をパラメーターとして使用して、1次元配列を生成します。

コードは次のように表示されます。

print np.array([1,2,3,4])
[1 2 3 4]

print np.array((1.2,2,3,4))
[ 1.2 2. 3. 4. ]

print type(np.array((1.2,2,3,4)))
< type 'numpy.ndarray'>

リスト変数またはタプル変数を要素として使用して、2次元配列を生成します。

コードは次のように表示されます。

print np.array([[1,2],[3,4]])
[[1 2]
[3 4]]

配列を生成するときに、numpy.int32、numpy.int16、numpy.float64などのデータタイプを指定できます。

コードは次のように表示されます。

print np.array((1.2,2,3,4), dtype=np.int32)
[1 2 3 4]

numpy.arangeメソッドを使用します

コードは次のように表示されます。

print np.arange(15)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]

print type(np.arange(15))
< type 'numpy.ndarray'>

print np.arange(15).reshape(3,5)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]

print type(np.arange(15).reshape(3,5))
< type 'numpy.ndarray'>

numpy.linspaceメソッドを使用します

たとえば、1から3までの9つの数値を生成するには。

コードは次のように表示されます。

print np.linspace(1,3,9)
[ 1. 1.25 1.5 1.75 2. 2.25 2.5 2.75 3. ]

numpy.zeros、numpy.ones、numpy.eye、およびその他のメソッドを使用して、特定のマトリックスを作成します

例えば:

コードは次のように表示されます。

print np.zeros((3,4))
[[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]]

print np.ones((3,4))
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]

print np.eye(3)
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]

3次元配列を作成します。

コードは次のように表示されます。

print np.zeros((2,2,2))
[[[ 0. 0.]
[ 0. 0.]]

[[ 0. 0.]
[ 0. 0.]]]

配列の属性を取得します:

コードは次のように表示されます。

a = np.zeros((2,2,2))
print a.ndim#配列の寸法
3

print a.shape#配列の各次元のサイズ
(2, 2, 2)

print a.size#配列の要素数
8

a.dtype#Elementタイプを出力します
float64

print a.itemsize#各要素が占めるバイト数
8

配列インデックス、スライス、割り当て

例:

コードは次のように表示されます。

a = np.array( [[2,3,4],[5,6,7]] )
print a
[[2 3 4]
[5 6 7]]

print a[1,2]
7

print a[1,:]
[5 6 7]

print a[1,1:2]
[6]

a[1,:] = [8,9,10]
print a
[[ 2 3 4]
[ 8 9 10]]

要素を操作するために使用

コードは次のように表示されます。

for x in np.linspace(1,3,3):
... print x
...
1.0
2.0
3.0

基本的なアレイ操作

まず、配列aとbを作成します。

コードは次のように表示されます。

a = np.ones((2,2))
b = np.eye(2)
print a
[[ 1. 1.]
[ 1. 1.]]

print b
[[ 1. 0.]
[ 0. 1.]]

配列の加算、減算、乗算、および除算:

コードは次のように表示されます。

print a > 2
[[ False False]
[ False False]]

print a+b
[[ 2. 1.]
[ 1. 2.]]

print a-b
[[ 0. 1.]
[ 1. 0.]]

print b*2
[[ 2. 0.]
[ 0. 2.]]

print (a2)(b*2)
[[ 4. 0.]
[ 0. 4.]]

print b/(a*2)
[[ 0.5 0. ]
[ 0. 0.5]]

print (a*2)**4
[[ 16. 16.]
[ 16. 16.]]

配列オブジェクトに付属のメソッドを使用します。

コードは次のように表示されます。

a.sum()
4.0

a.sum(axis = 0)#各列(2次元配列の行列に類似した列)の合計を計算します
array([ 2., 2.])

a.min()
1.0

a.max()
1.0

numpyの下のメソッドを使用します。

コードは次のように表示されます。

np.sin(a)
array([[ 0.84147098, 0.84147098],
[ 0.84147098, 0.84147098]])

np.max(a)
1.0

np.floor(a)
array([[ 1., 1.],
[ 1., 1.]])

np.exp(a)
array([[ 2.71828183, 2.71828183],
[ 2.71828183, 2.71828183]])

np.dot(a、a)##マトリックス乗算
array([[ 2., 2.],
[ 2., 2.]])

配列を組み合わせる

numpyの下でvstackおよびhstack関数を使用します。

コードは次のように表示されます。

a = np.ones((2,2))
b = np.eye(2)
print np.vstack((a,b))
[[ 1. 1.]
[ 1. 1.]
[ 1. 0.]
[ 0. 1.]]

print np.hstack((a,b))
[[ 1. 1. 1. 0.]
[ 1. 1. 0. 1.]]

これらの2つの関数に浅いコピーの問題が含まれているかどうかを確認してください。

コードは次のように表示されます。

c = np.hstack((a,b))
print c
[[ 1. 1. 1. 0.]
[ 1. 1. 0. 1.]]

a[1,1] = 5
b[1,1] = 5
print c
[[ 1. 1. 1. 0.]
[ 1. 1. 0. 1.]]

aとbの要素の変更はcに影響を与えないことがわかります。

ディープコピーアレイ

配列オブジェクトには、浅いコピーと深いコピーのメソッドが付属していますが、通常はさらに深いコピーを使用します。

コードは次のように表示されます。

a = np.ones((2,2))
b = a
b is a
True

c = a.copy()#deep copy
c is a
False

基本的なマトリックス操作

転置:

コードは次のように表示されます。

a = np.array([[1,0],[2,3]])
print a
[[1 0]
[2 3]]

print a.transpose()
[[1 2]
[0 3]]

痕跡:

コードは次のように表示されます。

print np.trace(a)
4

numpy.linalgモジュールには、マトリックス操作のための多くのメソッドがあります。

コードは次のように表示されます。

import numpy.linalg as nplg

固有値、固有ベクトル:

コードは次のように表示されます。

print nplg.eig(a)
( array([ 3., 1.]), array([[ 0. , 0.70710678],
[ 1. , -0.70710678]]))

3、 マトリックス

Numpyはマトリックスオブジェクトを作成することもできますが、ここでは説明しません。

Recommended Posts

PythonでNumpyを使い始める
Python(18)入門
Python(9)入門
Python(8)入門
Python(4)入門
Python入門(2)
python-1入門
Python(14)入門
Python(7)の使用を開始する
Python(17)入門
Python(15)入門
Python(10)入門
Python(11)入門
Python(6)入門
Python(3)入門
Python(12)入門
Python(5)入門
Python入門(18歳以上)
Python(13)入門
Python(16)入門
Python-4入門:クラスとオブジェクト
python-2入門:関数と辞書
04.Python入門の条件付きステートメント
Ubuntuを使い始める
はじめにpython学習手順
Python開発でのnumpyの使用
Pythonをすばやく開始する方法
pythonの関数
pythonに最初に精通した、pythonの文法規則
ヘッダー付きのpythonrequests.get
03.Pythonエントリの演算子
Pythonの結合関数
PythonでWeChatを再生する
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
PythonによるWebスクレイピング
Pythonでの同時リクエスト
Ubuntuにpythonをインストールする
Pythonでのコンテキスト管理
pythonの算術演算子
pythonでguiを書く
PythonでのMongoDBの使用
PythonのStr文字列
Pythonでの計算ジオメトリ
Pythonでの同時リクエスト(パート2)
Pythonでの継承について話す
Pythonnumpyはローリングケースを実装します
Python3.9の注目すべき更新ポイント
Pythonアプリケーションを3分でコンテナ化
pythonのイントロスペクションとは何ですか
pythonのオブジェクト指向とは何ですか
Pythonのジェネレーターとイテレーター
Pythonで文字列について話す