NumPyチートシート
それでは、実際に作業できるように NumPy を簡単に確認する必要がありますか? この記事はまさにあなたが必要とするものです!
入門
NumPyは Python の科学計算パッケージです。線形代数、フーリエ変換、行列用の定義済み関数が付属しています。NumPy は通常、データ サイエンス アプリケーションに使用されます。
開始するには、まずシステムに Python と NumPy があることを確認します。どのように取得するかは、システムと好みの IDE によって異なりますが、Anaconda をお勧めします。基本的な Anaconda のインストールでは、ターミナルに移動して「conda install numpy」を実行するだけで、出来上がりです!
それでは、example.pyファイルを作成して作業を開始しましょう。
注: 使用する単一のサンプル ファイルではなくプロジェクトを作成する場合は、単純にディレクトリとその中に__init__.pyファイルを作成する必要があります。
ファイル内で NumPy を操作できるようにするには、ファイルの先頭に次の行を追加する必要があります。
numpy を np としてインポート
注: NumPy から関数を呼び出すたびに numpy と入力する必要がないように、通常は np としてインポートします。変更することはできますが、npは一般的な規則であることに注意してください。
その後、ターミナルに移動して次のコマンドを実行するだけで、サンプル ファイル内のコードを実行できます。
python example.py
リストと配列
NumPy 操作で配列を頻繁に使用するため、1 つのことを明確にしておくことをお勧めします。リストと配列は Python では異なります。
配列を使用すると、行列のような多次元構造を宣言でき、その中で数値演算を実行できますが、単純な古いリストには当てはまりません。したがって、NumPy は配列に大きく依存しています。
リストは宣言しなくても値を代入できますが、配列はできません。したがって、配列を定義するには、次のようにする必要があります。
exampleArray = np.array([10, 15, 20]) // 一次元配列
または、多次元配列を次のように定義できます。
exampleArray2 = np.array([10, 15, 20], [50, 100, 150], [1, 2, 3])
配列内の項目を次のように呼び出すことができます。
exampleArray2 [1] // [50, 100, 150] を返します
exampleArray2 [1] [0]// 50 を返す
メソッド
以下に、NumPy を操作するときに一般的に使用される最も基本的な関数を示します。たくさんありますが、さらに多くのことを始めるには、以下で十分です。
配列の作成方法
- np.arange(0, 10): 0から9までの数字を項目とする一次元配列を作成します。
- np.arange(0, 10, 3): 0 から 10 までの数字が 3 番目ごとにジャンプする 1 次元配列を作成します。項目として 0、3、6、9 の配列を返します。
- np.zeros(3):各項目の値が 0 の 3 つの項目の配列を作成します。
- np.ones(3):各アイテムの値が 1 の 3 アイテム配列を作成します。
- np.linspace(0,20,5): 0 から 20 までの 5 つの数値を、間に等しいステップで取ります。アイテム 0、5、10、15、20 の配列を返します。6 つのアイテムを選択すると、アイテム間の等間隔を確保するために、アイテムはインターファーではなくフロートになることに注意してください。
- np.eye(3): 3 列 3 行の恒等行列を作成します。対角値はすべて 1 を返し、他のすべての値は 0 を返します。
- np.random.randn(5): 5 つの乱数を項目として 1 次元配列を作成します。数値は、整数型および/または浮動小数点型、負および/または正の型にすることができます。
- np.random.randn(5,5):項目として 25 個のランダム値を持つ 5 行 5 列のマトリックスを作成します。
- np.random.randint(1, 10, 2): 1 より大きく 10 より小さい 2 つの乱数を返します。
- myArray.reshape(5,5): myArray という名前の 1 次元配列を取り、5 行 5 列の行列として返します。配列内に十分な数のアイテムがない場合、たとえば 5 x 5 = 25 アイテムの場合、これはエラーをスローし、機能しないことに注意してください。このメソッドは配列自体を変更しませんが、配列の変更されたバージョンを返すだけです。
- myArray.max():数値配列の項目内で最大の数値を返します。
- myArray.min():数値配列の項目内の最小の数値を返します。
- myArray.argmax():数値配列の項目内で最大の数値のインデックスを返します。
- myArray.argmin():数値配列の項目内の最小数値のインデックスを返します。
- myArray.shape:配列の形状を返します。配列が 10 個の項目を持つ 1 次元の配列である場合、(10, ) が返されます。配列が 5 列と 6 行で構成される行列の場合、(5,6) が返されます。これは関数ではなく属性であるため、shape を呼び出すときに括弧がないことに注意してください。
- myArray[5]:配列からインデックス番号 5 の項目を返します
- myArray[3:5]:インデックス 3 と 5 の間のアイテムを返します。インデックス 3 のアイテムは含まれますが、5 は含まれません。
- myArray[3:5] = -3:インデックス 3 と 5 の間の項目の値を -3 に変更します。
- myArray[:] = 30:配列内のすべての項目の値を 1 つずつ 30 に変更します。
- myArray = 30: myArrayのタイプを配列から整数に変更し、その値を 30 に設定します。
- newArray = myArray.copy(): myArray のコピーを作成し、それを newArray に設定します。.copy() メソッドを使用しなかった場合、newArray に加えたすべての変更が myArray にも反映されることに注意してください。
行列を myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] ) として宣言しましょう。
- myMatrix[0]:配列である行インデックス 0 のアイテムを返します。したがって、[5, 10, 15] を返します。
- myMatrix[0] [1]:列のインデックスが 1 で行のインデックスが 0 のアイテムを返すため、この場合は値 10 を返します。
- myMatrix[0,1]:列のインデックスが 1 で行のインデックスが 0 のアイテムを返すため、この場合は値 10 を返します。
- myMatrix[1, 1:]:通常どおりインデックス 1 の行を取得しますが、列インデックスが 1 から始まる項目を返します (スプライスは常に Python で機能するため、1 を含みます)。したがって、この場合は [2, 3] を返します。
- myMatrix[ [0,1] ]:インデックス 0 と 1 の値を返すため、この場合は ( [5, 10, 15] , [1, 2, 3] ) を返します。
myArray = [ 5,10,15,20] として動作する配列 myArray を定義しましょう。
- myArray > 10:条件で判断してtrueとfalseの配列を返すので、今回の場合は[false, false, true, true]を返します。tihs は myArray の元の値を変更せず、代わりに新しい awway を作成することに注意してください。
- myArray [myArray > 10]:実際に [15, 20] の条件に従う項目を持つ新しい配列を返します。
- myArray + myArray:値がインデックスごとに合計され、対応するインデックスに配置される配列を返します。この場合は [10, 20, 30, 40] を返します。
- myArray — myArray:値がインデックスごとに減算され、対応するインデックスに配置される配列を返します。この場合は [0, 0, 0, 0] を返します。
- myArray/myArray:値がインデックスごとに分割され、対応するインデックスに配置された配列を返します。この場合は [1,1,1,1] を返します。いずれかのインデックスに値として 0 があった場合、数値は 0 で割ることができないため、警告がスローされ、そのインデックスに対して nan が返されますが、他のインデックスは通常どおり除算されます。
- np.sqrt(myArray):各値が同じインデックスにある場合、平方根を持つ配列を返します。したがって、myArray が [25, 16, 36] の場合、関数は [ 5, 4, 6] を返します。

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































