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)