[再版] Pythonの基本-Numpyライブラリの超詳細な紹介+ケース分析+コード

参照リンク:Pythonのnumpy.identity

1.NumPyの紹介 

NumPyは、高性能の科学計算とデータ分析のための基本パッケージです。計算速度は、非常に使いやすいPython独自の関数よりもはるかに高速です。通常、インストールする必要はありません。Pythonは自動的にインストールされます。必要な場合: 

pip3 install numpy

 

次にエクスポート 

numpyをnpとしてインポート

 

2.一般的な方法 

2.1最も一般的に使用される 

 

2.2もっと 

array.shape&配列仕様array.ndimデータ次元array.dtype&arrayデータ仕様numpy.zeros(dim1、dim2)&dim1dim2のゼロ行列を作成numpy.arange(start、stop、step、dtype = None)return1次元array numpy.eye(n)/numpy.identity(n)&create nnアイデンティティマトリックスnumpy.array([…data…]、dtype = float64)データタイプを変換array.astype(numpy.float64)&置換マトリックスデータフォームarray.astype(float)&行列データフォーム配列を置き換えます*配列&行列ドット乗算array [a:b]&1次元データスライスarray.copy()&ビュー配列の代わりにndarrayのコピーを取得します[a] [ b] = array [a、b]&Bothは同等ですname = np.array(['bob'、 'joe'、 'will'])res = name == 'bob' res = array([True、False、False ]、dtype = bool)data [True、False、……]インデックス、True部分のみを要求し、False部分を削除し、ブールインデックスを介して配列内のデータを選択すると、常にデータのコピーが作成されます。data [[4,3,0,6]]インデックス、4行目、3行目、0行目、6行目を抽出して、新しい配列numpy.reshape(a、b)を作成します。abの1次元配列を次の形式に配置します。 ab array([a、b、c、d]、[d、e、f、g])は、[a、d]、[b、e]、[c、f]、である1次元配列を返します。 [d、g] array.T&array numpy.random.randn(a、b)を転置し、a * bランダム配列numpy.dot(matrix_1、 

3.ndarrayの作成とデータ型 

3.1ndarrayの作成 

array()はリストを配列に変換し、オプションでdtypeを指定します 

arange()浮動小数点数をサポートする範囲のnumpyバージョン。Linspace()はarange()に似ています。3番目のパラメーターは配列の長さです。zeros()は指定された形状に従ってすべて0の配列を作成します。 dtype。 

**空の()**         

指定された形状とdtypeに従って空の配列(ランダム値)を作成します

**眼()**          

 指定された辺の長さとdtypeに基づいて単位行列を作成します

 

3.2データ型 

ndarrayデータ型:dtype:ブール型:bool_整数型:int_ int8 int16 int32 int64符号なし整数型:uint8 uint16 uint32 uint64浮動小数点型:float_ float16 float32 float64複合数値型:complex_ complex64 complex128 

4.ゴツゴツしたインデックスとスライス 

4.1一般的なインデックス 

1配列とスカラー間の操作:加算、減算、乗算、除算の操作を直接実行できます(要素ごとに)a + 1 a * 3 1 // a a0.5 2同じサイズの配列間の操作:a + ba / b ab 3配列のインデックス:1次元配列:a [5]多次元配列:a [2] [3]またはa [2,3] 4配列のスライス:1次元配列:a [3: 6]、a [:5]多次元配列:a [3:6,1:7]、a [:、1:7]注:リストとは異なり、配列はスライス時に自動的にコピーされません。スライスされた配列は元の配列に影響します。[解決策:copy()] 

4.2ブールインデックス 

1配列を指定して、配列内の5より大きいすべての数値を選択しますか?a [a> 5] 

2配列を指定して、配列内の5より大きいすべての偶数を選択しますか?a [(a> 5)&(a%2 == 0)] 

3配列が与えられた場合、配列a [(a> 5)|(a%2 == 0)]内の5より大きいすべての数値と偶数を選択します。 

4.3ファンシーインデックス 

1配列の場合、1、3、4、6、および7の要素を選択して、新しい2次元配列を形成しますか?回答:a [[1,3,4,6,7]] 

2:2次元配列の場合、最初と3番目の列を選択して新しい2次元配列を形成しますか?回答:a [:、[1,3]] 

5. NumPy:一般的な関数と欠測値の表現 

5.1単項関数 

numpy.sqrt(array)平方根関数 

numpy.exp(array)e ^ array [i] array 

numpy.abs / fabs(array)は絶対値を計算します 

numpy.square(array)は、array ** 2に等しい各要素の2乗を計算します 

numpy.log / log10 / log2(array)各要素のさまざまな対数を計算します 

numpy.sign(array)各要素の符号を計算します 

numpy.isnan(array)各要素がNaNであるかどうかを計算します 

numpy.isinf(array)各要素がNaNであるかどうかを計算します 

numpy.cos / cosh / sin / sinh / tan / tanh(array)三角関数 

numpy.modf(array)配列内の整数と小数を分離し、2つの配列として返します 

numpy.ceil(array)は切り上げます。つまり、この数値よりも大きい整数を取ります(整数の場合は、それ自体を取ります) 

numpy.floor(array)は切り捨てられます。つまり、この数値よりも小さい整数を取ります。 

numpy.rint(array)の丸め 

numpy.trunc(array)を0に丸めます 

numpy.cos(array)サイン値numpy.sin(array)コサイン値numpy.tan(array)タンジェント値 

5.2バイナリ関数:加算、減算、乗算 

numpy.add(array1、array2)要素レベルの追加 

numpy.subtract(array1、array2)要素レベルの減算 

numpy.multiply(array1、array2)要素レベルの乗算 

numpy.divide(array1、array2)要素レベルの除算array1 / array2 

numpy.power(array1、array2)要素レベルのインデックスarray1 ^ array2 

numpy.maximum / minimum(array1、aray2)要素レベルの最大値 

numpy.fmax / fmin(array1、array2)要素レベルの最大値(NaNを無視) 

numpy.mod(array1、array2)要素レベルの係数 

numpy.copysign(array1、array2)は、2番目の配列の値記号を最初の配列の値にコピーします 

numpy.greater / greater_equal / less / less_equal / equal / not_equal(array1、array2)ブール配列を生成するための要素レベルの比較演算 

numpy.logical_end / logical_or / logic_xor(array1、array2)要素レベルの真理論理演算 

5.3欠測値の表現 

numpyに欠落している値があります 

m = np.nan

m == m

np.isnan(m)

 

 欠落している値を削除するには、〜メソッドを使用します。 

d = np.array([m、1,3,0])

d [〜np.isnan(d)]

 

 

6. NumPy:数学的および統計的手法 

一般的な機能: 

c = np.array([1.1、-2.9,3,4.6,5,4,7,8、-9.7,10])

 

合計合計合計合計プレフィックスと平均 

stdは標準偏差を見つけます 

var分散を見つける 

最小値を見つける 

最大値を見つけるための最大値 

argminは最小インデックスを見つけます 

argmaxは最大インデックスを見つけます  

セブン、NumPy:乱数の生成 

乱数生成関数は、np.randomサブパッケージで一般的に使用される関数です。 

randは、指定された形状(0から1までの数値)のランダム配列を生成しますrandintは、指定された形状のランダム整数を生成します 

Choiceは、特定の形状に対してランダムな選択肢を生成します。シャッフルはrandom.shuffleと同じです。 

ユニフォームは、指定された形状のランダム配列を生成します 

コードの一部 

コメントするには、完全なコードが必要です。 

numpyをnpとしてインポート

 

x = np.array([[1.0,0.0,0.0]、[0.、1.、2。]])#サイズが(2、3)の2次元配列を定義します

バツ

np.array([[1.、0.、0。]、

       [0.、1.、2。]])

x.ndim#配列の次元

2

x.shape#配列の次元、返される形式(n、m)。ここで、nは行の数、mは列の数です。

(2、3)

x.size#配列要素の総数

6

x.dtype#Array要素タイプ

np.dtype( 'float64')#64ビット浮動小数点

x.itemsize#各要素が占めるバイトサイズ

8

x.data#配列要素のバッファ

 

 

'' 'インデックス' ''

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

 

a [a> 5&(a%2 == 0)]#次のように、角かっこを追加するのではなく、角かっこを追加することに注意してください。 

#出力:array([1、2、3、4、5、4、7、8、9、10])

a [(a> 5)&(a%2 == 0)] 

 

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

np.sign(b)

np.modf(b)[0]#2つの配列を返す

 

c = np.array([1.1、-2.9,3,4.6,5,4,7,8、-9.7,10])

np.ceil(c)

np.floor(c)

 

#5.2

np.add(b、c)

np.subtract(b、c)

例:乗算(b、c)

np.maximum(b、c)

np.fmax(b、c)

np.mod(b、c)

np.logical_and(b、c)

#5.3

m = np.nan

m == m

np.isnan(m)

d = np.array([m、1,3,0])

d [〜np.isnan(d)]

 

'' '6' ''

c = np.array([1.1、-2.9,3,4.6,5,4,7,8、-9.7,10])

np.sum(c)

np.cumsum(c)

np.mean(c)

例:argmin(c)

 

'''7'''

np.random.rand(3,2)

np.random.randint(3,4)

np.random.choice(3,4)

おすすめ

転載: blog.csdn.net/u013946150/article/details/113041933