Python
 Computer >> コンピューター >  >> プログラミング >> Python

NumPyアレイ:初心者向けガイド

リストは、要素の順序付けられたシーケンスを含むデータのタイプです。リストを使用すると、1つの変数に複数の関連する値を格納できるため、リストは便利なデータ型です。リストを使用すると、10足の靴の名前を1つの変数に格納できます。ストアで行った購入のリストを1つの変数に格納できます。

組み込みのリストデータ型はすでに強力ですが、より高度なユースケースでは不足している場合があります。そこでNumPyの配列データ型が登場します。NumPyライブラリを使用すると、複数の次元を持つ配列を簡単に作成できます。

このガイドでは、NumPy配列とは何か、それらが有用である理由、およびコードでそれらを操作する方法について説明します。始めましょう!

NumPyアレイとは何ですか?

NumPy配列は、NumPyPythonライブラリ内で使用される配列オブジェクトです。 Numerical Pythonの略であるNumPyは、科学的および数学的なコンピューティングによく使用されるパッケージです。これには、データ分析と高度な数学を支援できるさまざまなツールが付属しています。

バニラPython(外部パッケージのないPython)では、配列は強力ですが、処理が遅くなる可能性があります。一方、NumPy配列は、従来のPython配列よりも桁違いに高速になることを目指しています。

このパフォーマンスの向上は、NumPy配列がメモリ内の1つの連続した場所に値を格納するために達成されます。これにより、Pythonがリストに簡単にアクセスして操作できるようになります。

NumPy配列を宣言する方法

開始するには、NumPyアレイを設定しましょう。このチュートリアルでは、文字列値を配列に格納します。これらの文字列値は、地元のコーヒーショップで提供されているお菓子のリストです。 NumPyライブラリをインポートすることから始めます:

import numpy as np

このコード行はnumpyをインポートします Pythonから取得し、ライブラリにnpという名前を割り当てます 。つまり、配列を操作する必要があるときはいつでも、npを呼び出すだけで済みます。 。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

次に、配列インターフェースを使用して配列を宣言します:

treats = np.array(["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"])
print(treats)

配列には4つの文字列値が含まれています。従来のPython配列と同様に、リスト内のすべての項目を角かっこで囲みました。 NumPy配列を宣言するために、npの一部であるarrayメソッドを使用しました 。これにより、ndarrayが作成されます 組み込みのNumPy配列型であるオブジェクト。

このコードは、元の配列のコピーを返し、NumPy配列として作成されます。

['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread']

これで、操作できるアレイができました。

NumPy配列:次元

NumPyのディメンションについて話すとき、映画で見られるような新しい世界を意味するものではありません。配列内の次元は、その配列内の1レベルの深さです。ディメンションという用語が使用される場合、ネストされた配列を指します。これらは、配列を含む配列です。

配列は任意の数の次元を持つことができます。使用するアレイのほとんどは、1-D、2-D、または3-Dアレイのいずれかになります。 「D」は寸法を表します。

NumPy1-Dアレイ

最初の例では、1-D配列を作成しました。これは、要素として0-D配列(またはアイテム)を含む配列です。使用する配列のほとんどは1-Dになります。

コーヒーショップでおやつの価格を保存する配列を作成しましょう:

import numpy as np

prices = np.array([1.95, 2.00, 2.05])
print(prices)

このコードは、値を格納する1次元の配列を返します:[1.952.2.05]。

1次元配列から要素にアクセスするには、Pythonリストの場合と同じ構文を使用できます。リストの2番目のアイテムを取得しましょう:

print(prices[1])

このコードは、インデックス値が1のアイテムを返します。これは2です。

Pythonアレイの詳細については、Pythonアレイの初心者向けガイドをご覧ください。

NumPy2Dアレイ

すべてのアレイが1-Dであるわけではありません。 2つの配列を含む配列を格納したいとします。 1つの配列には、コーヒーショップで販売されているお菓子が保管されています。他の配列には、ショップで販売されているコーヒーのリストが格納されています。一緒に、これらはmenu itemsの一部です 配列。

NumPyを使用してこの配列を作成しましょう:

import numpy as np

menu_items = np.array([
	["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"],
	["Cappuccino", "Espresso", "Mocha"]
])

print(menu_items)

結果の配列は次のとおりです。

[['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread']
 ['Cappuccino' 'Espresso' 'Mocha']]

新しく作成した配列には2つの次元があります。配列内の最初の配列には、お菓子のリストが含まれています。 2番目の配列には、コーヒーのリストが含まれています。これらのアレイは両方とも、2つのアレイを接続する1対の角括弧で囲まれていることに注意してください。

2次元配列からのアイテムの取得は、NumPyではPythonとは少し異なります。 2次元配列から要素にアクセスするには、配列から取得する値のインデックス番号を区切る必要があります。

このコードを検討してください:

print(menu_items[0, 2])

コードが返されます:JammyShortbread。インデックス値0の配列内に格納されているインデックス値2のアイテムを取得しました。この場合、コーヒーショップで販売されているお菓子を格納している配列の最後のアイテムを取得しました。

NumPy3Dアレイ

別の次元を追加しましょう! NumPy配列には、3D配列を含めることができます。これは、2次元配列を含む配列です。

次の値を保存するとします。

  • 甘いものと甘いものではない食品(ペアになっていますが、別々の配列になっています)。および
  • カフェイン入りおよび非カフェイン入り飲料(ペア、別々の配列)

これらの値はすべて、1つの配列内に格納する必要があります。この配列の次元は次のとおりです。

  • 1-D:すべてのメニュー項目
  • 2-D:甘いそして 甘くない食品、カフェイン入りおよび カフェイン以外の飲み物
  • 3-D:甘い食べ物、甘いものではない食べ物、カフェイン入り、カフェイン入りでない飲み物

NumPyを使用してこの配列を作成しましょう。次のコードをPythonファイルに貼り付けます:

import numpy as np

menu_items = np.array([
	[
		["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"],
		["Smoked Bacon Roll", "Tuna Melt Panini", "Cheese and Tomato Toastie"]
	],
	[
		["Cappuccino", "Espresso", "Mocha"],
		["Apple Juice", "Water", "Orange Juice"]
	]
])

print(menu_items)

コードは次のようになります:

[[['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread']
  ['Smoked Bacon Roll' 'Tuna Melt Panini' 'Cheese and Tomato Toastie']]

 [['Cappuccino' 'Espresso' 'Mocha']
  ['Apple Juice' 'Water' 'Orange Juice']]]

前に説明したすべての情報を使用して3D配列を作成しました。この配列は、コーヒーショップが提供するすべてのメニュー項目の包括的なリストです。

3D配列からのアイテムへのアクセスは、2D配列からのアイテムへのアクセスに使用する構文と同様に機能します。違いは、3D配列からアイテムを取得するには、3番目のインデックス番号を指定する必要があることです。配列から「モカ」を取得しましょう:

print(menu_items[1, 0, 2])

コードが返されます:Mocha。

1は、アクセスする1番目の次元のインデックス番号です(1は飲み物に対応します)。 0は2次元のインデックス番号です(0はカフェイン入り飲料に対応します)。 2は3次元のインデックス番号です(2はモカに対応します)。

配列内の次元を数える

新しいディメンションを追加し始めると、NumPy配列はかなり複雑に見え始める可能性があります。 3次元を超える配列についても調査していません。幸いなことに、配列の次元数を計算するために使用できる便利なショートカットがあります。

次のコードをPythonファイルに貼り付けます:

import numpy as np

menu_items = np.array([
	["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"],
	["Cappuccino", "Espresso", "Mocha"]
])

print(menu_items.ndim)

コードを実行してみましょう。値「2」が返されます。これは、配列に2つの次元が含まれていることを示しています。これは、上記の配列を分析することで正しいことがわかります。

結論

NumPy配列は、同様の値を格納するための柔軟な方法です。これらは、従来のPython配列よりも高速で効率的です。 NumPy配列を使用して、複数の次元で簡単に作業できます。これは、バニラPythonでは実行がより困難です。

これで、エキスパートプログラマーのようにNumPyアレイを使い始める準備が整いました!


  1. Googleフォトの初心者向けガイド

    これまで以上に多くの写真を撮っている場合は、スマートフォン、カメラ、タブレットのギャラリーがどんどん大きくなっていることは間違いありません。オンラインで写真を整理するのにGoogleフォトほど良い場所はありません。使いやすく、無料で、Googleによってサポートされている、このAI中心のプラットフォームは、モバイルフォトグラファーにとって必須のプラットフォームです。 2年以内に、プラットフォームはすでに5億人以上のユーザーを達成し、毎日12億枚もの写真をアップロードしています。 iOS、Android、およびWebで利用できるGoogleフォトは素晴らしい選択肢です。無制限のストレージを無料で

  2. 初心者向けのチートエンジン(完全ガイド)

    Cheat Engineは、ゲーマーがさまざまなゲームの制限を克服するために(または単に楽しみのために)要件に従ってさまざまなゲーム値を編集するために使用するWindowsOSの主要なツールの1つです。メモリをスキャンし、デバッガー機能を使用して操作を実行します(つまり、ゲームでの不正行為)。 そのニッチで最高のツールの1つであるため、初心者にとって最高のユーザーインターフェイスの1つを備えておらず、操作するにはある程度の専門知識が必要です。そこで、初心者向けガイドをまとめました。 初心者にとって物事を簡単にし、チートエンジンの適切な使用方法を教えるため。 ただし、先に進む前に、すべての