多次元配列の基本的な使い方numpyの

ndarrayオブジェクトを作成し、パラメータとしてリストと同じくらい簡単です。 
例えば

 


NP#などの輸入numpyのはnumpyのライブラリを導入します

#次元オブジェクトを作成narray
A = np.array([1,2,3,4,5])

#Narrayは、2次元オブジェクトを作成
A2 = np.array([1,2,3,4,5] 、[6,7,8,9,10]])

#その多次元オブジェクトと同様にして作成されました

 

  行列の行(二次元)の列数を取得
あなたがマトリックスを通過する際にマトリックスの行と列の数を得るために、一般的に、デジタルアナログプログラミングのための最初のMATLABを使用することに慣れています。オブジェクトがnarray属性形状できるオブジェクトnarrayの各次元の長さを得るために

NPのようnumpyのインポート
A = np.array([1,2,3,4,5]、[6,7,8,9,10]])

プリント(a.shape)#結果タプルがタプル(2L、5L)を返す
プリント(a.shape [0])#は、行の数が2返され得る
プリント(a.shapeの[を1])#は、列数を取得し、5を返します
 

 採取マトリックス 
 採取行と列 
遮断する[](ブラケット)によって、同一のマトリックスと取らリスト


NPのようnumpyのインポート
A = np.array([1,2,3,4,5]、[6,7,8,9,10]])

プリント([0:1] )#遮断最初の行は、戻り[2. 1. 4. 3. 5]
印刷([1,2 :. 5])#2行目、第4の採取、[戻ります89]

プリントは、([1:])#、採取2行目は、[678910]を返します

 
 
 傍受条件 
遮断条件によっては、実際に[](角括弧)で独自のブールステートメントを通過さ 


NPとしてnumpyのインポート

np.array =([1,2,3,4,5]、[6,7,8,9,10])
B = [A> 6]#6は、撮影した行列要素がより大きい場合、範囲は、一次元アレイで
プリント(B)#戻り[78910]

実際には#、ブール文の最初の傍受を達成するために、ブール行列、行列の着信ブール[](角括弧)を生成
印刷(A> 6) 
リターンを
[[偽偽偽偽偽]
 [偽真真真真]]

 
 
条件付きのアプリケーションは、特定の条件を満足する複数の行列要素が特定の値となる取られます。 
例えば、行列要素6は、0よりも大きくなります。


NPとしてnumpyのインポート

np.array = A([1,2,3,4,5]、[6,7,8,9,10]])
リント(A)
スタート行列
[[12345]
 [6 78910]]

[A> 6] = 0
プリント(A)
以上6#明確なマトリックス後に
[12345]
 、[60,000]

 

 合わせたマトリックス 
合成マトリックスは、方法によって達成さnumpyの方法をhstack vstackことができます


NPとしてnumpyのインポート

A1 = np.array([1,2]、[3,4])
A2 = np.array([5,6]、[7,8])

#!パラメータリストは、リストの形式またはタプルの着信タプルに渡されることに注意してください
プリント(np.hstack([A1、A2])) 
以下の結果を返し、横方向に合わせ# 
[1256] [
 [347 8]

プリント(np.vstack((A1、A2)))
は、長手方向を合わせ、次のように結果を返す
[12]
 [34]
 [56]
 [78]

 合成マトリックスはまた、缶concatenatef方法。

np.concatenate((A1、A2)、軸= 0)は((A1、A2))をnp.vstackと等価です

np.concatenate((A1、A2)、軸= 1)は((A1、A2))をnp.hstackと等価です

 
 行列が作成する機能によって 
ndarrayオブジェクトnumpyのモジュールを作成するために、いくつかの機能が付属して、あなたは簡単に、共通または定期的な行列を作成することができます。

arange

NPとしてnumpyのインポート

= np.arange(10)#デフォルトステップ(10を除く)0から10まで出発。1枚の
プリント(A)#[0123456789]を返します

開始から10まで、A1 = np.arange(5,10)#5(10を除く)の工程1つのにおいて
印刷(A1)は、#[56789]を返します

開始から20までA2 = np.arange(5,20,2)#5(20を除く)2の工程で
プリント(A2)#[5791113151719]を返します

 
 
 linspaceの 
linspace()とMATLAB linspaceと非常に類似しては、等間隔の配列指定された数を生成するため、実際の演算シーケンスを生成します。

NPとしてnumpyのインポート

= np.linspace(0,10,7)#0、最後のものは10で、最初の世代である演算シリーズの数が7を含む
プリント(A) 
結果 
[5 0.5 1.66666667 3.33333333 6.66666667 8.33333333 10]。
 

 ログ・スペースの 
演算シーケンスを生成するための、および幾何学的配列のログ・スペースを生成するためlinspace。 
次の例では、最初の100を生成するために使用され、102は等比級数の5数を含む、最後のものです。

NPとしてnumpyのインポート

np.logspace = A(0,2,5)
プリント(A)
結果
[1. 10 31.6227766 3.16227766 100]
 
 のもの、ゼロ、眼、空の 
完全なマトリックスを作成するもの 
すべてゼロ行列を作成するためにゼロを 
眼マトリックスが作成 
空(値が実際に存在する)空の行列を作成します


NPとしてnumpyのインポート

a_ones = np.ones((3,4)) #完全な3×4行列を作成する1
プリント(a_ones)
結果
[1 1 1 1]
 、[1 1 1 1]
 [1 1. 1. 1]]

a_zeros = np.zeros((3,4)) # 0フル3×4マトリックスの作成
印刷(a_zeros)
結果
[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]

a_eye = np.eye(3)#3次単位行列を作成する
プリント(a_eye)
結果
[0 1 0]
 [0 1 0]を
 [0 0 1]

a_empty = np.empty((3,4)) # 3 * 4の空行列作成 
プリント(a_empty)
結果
[1.78006111e-306 -3.13259416e-294 4.71524461e-309 1.94927842e + 289]
 2.10230387e- [ 5.42870216e + 294 6.73606381e-309 310 3.82265219e-297]
 [6.24242356e-309 1.07034394e-296 2.12687797e + 183 6.88703165e-315です]

 
 fromString 
fromString()メソッドは、文字列ndarrayオブジェクトに変換することができる。この方法は、有用な配列は、ASCIIコードの文字列を得ることができるデジタル化された文字列である必要があります。

= A "ABCDEF"
DTYPE np.int8指定するようにB = np.fromstring(A、DTYPE = np.int8)文字として#8、
を返し印刷(B)を[979,899,100,101,102]
 

 
 fromfunctionの 
fromfunction()メソッドは、マトリックスの外マトリックスの行番号の要素に応じて生成することができます。 
そのような行列は、行と列番号と各要素のマトリックスを作成します。


NPとしてnumpyのインポート

デフFUNC(i、j)は: 
    私はJ +リターン

np.fromfunction = A(FUNC、(5,6)) 
パラメータは、最初の関数を指定し、2番目のパラメータは、リスト内のタプルまたはタプルであり、マトリックスサイズ記載の
印刷(A)
戻り
[0.1 2. 3. 4. 5]
 [1。2. 3. 4. 5. 6]
 [2. 3. 4. 5. 6. 7]
 [3. 4. 5. 6. 7.8 ]
 [4. 5. 6. 7. 8. 9]
列が0から始まる行の数であること#注

 

 
 行列演算は、 
 行列演算子使用する 
多くのオーバーロードされた演算子でndarray numpyのオブジェクトを、これらの演算子は、対応する要素間の行列演算を完了するために使用することができます。

オペレータ説明
行列の対応する要素加算+
減算に対応する行列要素を-
行列乗算の対応する要素*
要素を対応する/分割マトリックスがプロバイダが整数であるならば、取る、
%余りを取るマトリクス分割の対応する要素を
各行列要素の** n個のパワーは2 **としてとられる:各要素を二乗
例えば


NPとしてインポートnumpyの
A1 = np.array([4,5,6]、[1,2,3]])
A2 = np.array([6,5,4]、[3,2,1] ])

プリント(A1 + A2)#和
#結果
[101 010]
 [444]

(A1 / A2)#印刷整数除算はリスト取る
#結果を
[011]
 [013]

プリント(A1%のA2)#分割は余り取る
#結果を
[402]
 [100]

 

 
 一般的な行列関数は 
同様に、numpyのは、また、多数の機能を定義し、これらの機能は、行列の各要素に機能することができます。 
デフォルトテーブルはnumpyのモジュール、すなわち、導入 
としてインポートnumpyのNPの
ようndarrayオブジェクト。
行列関数説明
np.sin(a)は、行列の各要素の正弦を取る、SIN(X)
np.cos(a)は、行列の各要素の余弦をとる、COS(X)
np.tan(A)の行列の各要素は、正接を取る、タン(X)
np.arcsin(a)の行列の各要素のアークサインを取って、アークサイン(X)
np.arccos(a)の行列の各要素の逆余弦をとります、ARCCOS(X)
の逆正接をとる各要素は、逆正接(X)np.arctan(A)マトリックス
np.exp(a)は、行列の各要素の指数関数を取って、EXの
np.sqrt(A)行列の平方根の各要素√x
例えば


NPとしてnumpyのインポート

np.array = A([1,2,3]、[4,5,6]])
リント(np.sin(A))
結果
[0.84147098 0.90929743 0.14112001]
 [-0.7568025 -0.2794155 -0.95892427]

印刷(np.arcsin(A))
の结果の
C:\ユーザーは、管理者\デスクトップ\のlearn.pyを\:6:RuntimeWarning:アークサインの中で遭遇した無効な値
  印刷
(np.arcsin(A))[[1.57079633ナンナン]
 [ナンナンナン]

行列の要素は、ドメインの範囲内にない場合、RuntimeWarningを生成し、結果はNaN(非数)です。

 


  行列乗算(ドット)
の条件を満たさなければならない行列乗算行列乗算の行の数、行列の列、すなわち数が第2の行列に等しいです。 
以下のためのドットマトリックス乗算機能 
など


NPとしてnumpyのインポート

A1 = np.array([1,2,3] 、[4,5,6]])#A1を2×3行列である
([1,2] A2 = np.array 、[3,4] [5,6])#a2は、3×2行列であります

プリント(a1.shape [1] == a2.shape [0])#真、 状態行列乗算満足
プリント(a1.dot(A2)) 
MATLAB A2 * A1の対応する#1 a1.dot(A2)を
#とPythonのMathWorks社のMATLABのA1 * A2はA1に対応しています。A2 *
#結果
[2228]
 [4964]]

 

 
 転置行列 

NPとしてnumpyのインポート

= np.array([1,2,3]、[4,5,6]])

プリント(A.transpose())
結果
[14]
 [25]
 [36]

 もっと簡単な方法があります行列の転置は、ATにあります


NPとしてnumpyのインポート

np.array = A([1,2,3]、[4,5,6]])
プリント(AT)
#結果
[14]
 [25]
 [36]

 

 逆行列 
行列逆の逆機能をINVにlinalgで、numpy.linalgをインポートする必要があります。 
行列反転条件は、行列の行と列の数が同じです。


NPのようnumpyのインポート
LGなどの輸入numpy.linalg

= np.array([1,2,3]、[4,5,6]、[7,8,9]])

プリント(lg.inv(A))
結果
[[-4.50359963e 9.00719925e + 15 + 15 + 15 -4.50359963e]
 [9.00719925e + 15 -1.80143985e 9.00719925e + 16 + 15]
 [15 + 9.00719925 -4.50359963e E + 15 -4.50359963e + 15]]

= np.eye(3)#3次単位行列の
プリント(lg.inv(a))は、自分のため#逆行列
#結果
[0 1 0]
 [0 1 0]
 [ 0 0 1]

 

 
  マトリクス情報の取得(例えば、平均)
 の最大最小 
行列の要素の最大値、最小値は最大値と最小値の関数であり、それぞれ、マトリックスの行または列の最大値と最小値の全体にわたって得ることができます。 
例えば


NPとしてnumpyのインポート

np.array = A([1,2,3]、[4,5,6]])
リント(a.max())#最大結果を全体マトリックス:. 6得る
プリント(a.minを()) #結果:1

#キーワードパラメータを得ることができる軸線最大(最小)値または列の最大値(最小)値
#軸= 0、最大(最小)値の行方向、即ち、最大(最小)値の各列
#軸= 1つの列方向最大(最小)値、すなわち、行当たりの最大(最小)値
#例えば

プリント(a.max(軸= 0))
結果[456]

プリント(a.max(軸= 1))
結果[36]

最大と最小の位置の#要素位置し得るために、関数はARGMAXによって得られることができる
プリント((軸= 1)a.argmax)
結果[22]

 

 平均値 
行列の要素で得られた平均値)(平均機能することができます。同様に、全体のマトリックスは、行または列の平均値を求めてもよいです。


NPとしてnumpyのインポート

np.array = A([1,2,3]、[4,5,6]])
リント(a.mean())#結果:3.5

#は、同様に、パラメータは、平均値の軸を求めるキーワードによって指定することができる方向
印刷(a.mean(軸= 0) )#の結果[5 2.5 4.5 3.5]
プリント(a.mean(=軸1))#結果[2 5.]

 

 
 分散 
VARの分散の関数()、平均値に対応する分散VAR()関数の機能- (ABS(X x.meanを( ** 2)))、 xが行列です。


NPとしてnumpyのインポート

np.array = A([1,2,3]、[4,5,6]])
リント(a.varは())2.91666666667#結果

プリント(a.var(軸= 0) )#の結果[2.25 2.25 2.25]
プリント(a.var(軸= 1))#結果[0.66666667 0.66666667]

 

 
 標準偏差 
関数)(標準偏差STDです。 
STD()は平方根と等価である(平均値(ABS(X - x.mean())** 2))、 または同等のSQRT(x.var())。


NPとしてnumpyのインポート

np.array = A([1,2,3]、[4,5,6]])
リント(a.stdは())1.70782512766#結果

プリント(a.std(軸= 0) )#1 [1.5 1.5 1.5]結果
プリント(a.std(軸= 1))#結果[0.81649658 0.81649658]

 

 

 メジアン 
値は大きさの順に配列された配列を指す偶数である場合、それは中央の行は、2つの数の平均値であり、その値の中央にランク。

値のシーケンスが4になるように、例えばサイズのオーダ[2,2,4,5,6]に配置された配列[5,2,6,4,2]は、中段に、4です。

別の例では、偶数であるので、[5,2,6,4,3,2]、[2,2,3,4,5,6]の大きさの順に配列されたシーケンスで、番号は中段3で2であります図4は、そのような値のシーケンスは3.5です。

中央値関数()、呼び出しメソッドnumpy.median(X、[軸])であり、軸軸方向を指定することができ、デフォルトの軸=すべての値の数をなし、。


NPとしてインポートnumpyの
X = np.array([1,2,3]、[4,5,6]])

印刷(np.median(X))#すべての数字の中央値取っ
#結果
3.5

プリント(np.median(X軸= 0))#の第一方向に沿って切断したメジアン寸法
#結果
[2.5 3.5 4.5]

プリント(= np.median(X、軸 #1)) メジアン寸法は第二方向に沿う
#結果
[2.5.3]

 加算 

SUMは和関数行列()、缶行、列、または全体マトリックス合計であります


NPとしてnumpyのインポート

= np.array([1,2,3]、[4,5,6]])

全体マトリクスの印刷(a.sum())#加算
結果#21

プリント(a.sum(軸= 0) )#の行方向の合計
#結果[579]

プリント(a.sum(軸= 1) )#の列方向加算
#結果[615]

 

 蓄積と  

蓄積手段と、(位置を含む)の位置の前に位置し、すべての要素。

例えば、蓄積及び[1,3,6,10,15]、即ち、第1の要素が1であるシーケンス[1,2,3,4,5]は、2番目の要素は、1 + 2 = 3であり、... ...、5番目の要素は1 + 2 + 3 + 4 + 5 = 15。

関数行列とCUMSUM()、缶行、列、または全体マトリックスおよび蓄積を蓄積しています。


NPとしてnumpyのインポート

= np.array([1,2,3]、[4,5,6]])

プリント(a.cumsum())#需要全体のマトリックスの蓄積
#結果[136101521]

プリント(a.cumsum(軸= 0) )#方向及び行の蓄積
#結果
[123]
 [579]

プリント(a.cumsum(軸= 1) )#の要求と蓄積の列方向
#結果
[136]
 [4915]
------------------ --- 
著者:ShellCollectorの 
ソース:CSDNの 
元ます。https://blog.csdn.net/jacke121/article/details/76146884 
著作権:この記事はブロガーオリジナル記事ですが、再現し、ボーエンのリンクを添付してください!

おすすめ

転載: blog.csdn.net/yimixgg/article/details/90600850