NumPyの習得:方法、Ndarrayの操作と関数の初期化
公開: 2021-01-05Numpyは、高次元データに対して高効率で抽象的な機能を使用して数学および数値演算を実行できるようにするPythonパッケージです。 特定のビジネスユースケース向けの機械学習ソリューションを構築する際、前処理が簡単になり、結果が解釈できるようにデータを変換することが非常に重要になります。 Numpyは、関連するすべての機能を可能な限り最良の方法で実行できるようにするコアライブラリです。
目次
なぜNumPyなのか?
Pandas、Matplotlib、Scikit-learnなどの他のデータサイエンスライブラリは、その高性能性のためにNumpyの上に構築されています。 このライブラリは、組み込みのPythonリストの代わりに使用されるndarrayを提供します。 Pythonリストは値を格納するのに最適ですが、メモリ位置のポインタを格納するため実行時間が長くなり、メモリと実行の観点からオーバーヘッドが追加されます。
Numpyは、画像が高多次元マトリックスとして処理され、ぼかし、色の変化、オブジェクト検出などのさまざまな変換を実行する画像処理分野で直接使用されています。
すべてのデータサイエンス志願者が知っておくべき重要なNumpy関数を見てみましょう。ただし、その前に:
- 以下のすべての関数コードは、ライブラリがエイリアスnpでインポートされていることを前提としています。つまり、numpyをnpとしてインポートします。
- 「アレイ」という用語は、この時点以降のndarrayを定義するために使用されます。
初期化するさまざまな方法
1.線形間隔
この関数は、値の範囲内で線形間隔の配列を提供することを目的としています。 関数np.linspace(start、stop、num)は、startとstopが値の範囲を定義し、numがサンプルの数を定義し、等間隔の値を返しますが、np.arange(start、stop、step)は異なる値を返します。ステップ値。
2.特定の値
多くの場合、1、0、ID、定数値などの値を使用して大きな行列を初期化することができます。 配列のサイズはタプルとして渡されます。 Numpyは、さまざまな機能を介してこれを容易にします。
- np.zeros(size):要素はゼロです
- np.ones(size):要素は1つです
- np.full(size、constant value):要素は渡される定数値です。
- np.eye(size):対角要素は1で、残りは0です。 これは単位行列です。
- np.empty(size):空行列
- np.random.random(size):ランダム値行列は指定されたサイズで初期化されます。
読む:Numpyインタビューの質問
Ndarray操作
このライブラリの主な目的は、異なるアレイ間の効率的な計算です。 Numpyは、要素ごとに適用されるほぼすべてのタイプの数学演算と操作をサポートします。 それらのいくつかを以下に示します(同じサイズの2つの配列AとBがランダムな値で初期化されると仮定します)。
1.数学
- np.add(A、B):加算
- np.subtract(A、B):減算
- np.divide(A、B):分割
- np.multiply(A、B):乗算
- np.exp(A):指数値
- np.sqrt(A):平方根の値
- np.sin(A)、cos(A)、tan(A):三角関数の値
- np.log(A):対数値
- np.percentile(A、必要なパーセンタイル、軸):パーセンタイル値(たとえば、50)を渡すと、関数は配列の50パーセンタイルを返します。
- A.dot(B):配列の内積を返します
- A == B:要素ごとの比較
- np.array_equal(A、B):配列ごとの比較
- A.sum():すべての要素の合計
- A.min()、max():最小値と最大値
- A.cumsum():配列の要素の累積合計
- A.corrcoef():相関係数
2.操作
- np.transpose(A)またはAT:行列の転置
- A.ravel():配列をフラット化します
- A.reshape(new_shape):配列の形状を変更します(ここでは、タプルに配置せずにサイズを直接渡します)。 新しいサイズはと同じである必要があります
- A.resize(size):配列の形状を任意の形状に変更し、この新しい形状の一部ではない他の要素を破棄します。
- np.concatenate((A、B)、axis = 1または0)
- np.vstack((A、B)):配列を垂直方向(行方向)にスタックします
- np.hstack((A、B)):水平スタック
チェックアウト:Numpy vs Panda:違い

その他の機能
- np.where():これは、if-elseステートメントの必要性を排除する重要な関数です。 条件、条件が満たされている場合の値、満たされていない場合の値の3つの重要な引数を取ります。 この簡単な例は、特定のしきい値に基づいて列を2値化する必要がある場合です。
- np.intersect1d():この関数は、2つの1-d配列の共通部分を返します。 これは、これらの配列の共通の値がこの関数によって返されることを意味します。 渡された配列が1-dでない場合は、フラット化されます。
- np.allclose():これは興味深い関数です。 アレイを比較しているときにある程度の許容範囲を確保できる場合や、同様のアレイを見つけたい場合があります。 この関数は、必要な配列と許容値を取り込みます。 例えば:
- arr1 = np.array([1,2,3,4])
- arr2 = np.array([2,3,4,5])
- np.allclose(arr1、arr2、0.5):Falseを返します
- np.allclose(arr1、arr2、1):Trueを返します
- argmin()、argmax()、およびargsort():名前が示すように、これらの関数はそれぞれの名前のインデックスを返します。 A.argmin()は最小要素インデックスを返し、A.argmax()はその逆であり、A.argsort()はソートされた配列のインデックスを返します。 これらの関数は、結果がインデックスに依存する場合に便利です。
- np.clip():これは特定の範囲内の値を変換するために使用されます。 たとえば、配列の値が1〜30で、他の値を失わずに14〜27の値が必要な場合、この関数は19〜19未満の値をスケールアップし、27〜27を超える値をスケールダウンします。
結論
numpy配列を操作している間はさらに多くの関数がありますが、これらは最もよく使用される関数です。 Pandasの列またはシリーズに適用される操作は、シリーズが1次元のndarrayであるため、実際にはndarrayにあります。
Numpyは、特定のアルゴリズムをテストしたり、シナリオをシミュレートしたりするための偽のデータを生成するための優れたツールです。 これは、画像を多次元行列に変換して必要な操作を実行するコンピュータービジョンアプリケーションや、ニューラルネットワークの重みがこれらのndarrayによって保持される深層学習で広く使用されています。
データサイエンスについて知りたい場合は、IIIT-BとupGradのデータサイエンスのPGディプロマをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップ、1- on-1業界のメンター、400時間以上の学習、トップ企業との仕事の支援。