numpyの簡単な入門チュートリアル

numpyの簡単な入門チュートリアル

numpyのPythonは、それは、アレイを重視し、非常に高速な数学ライブラリの演算速度です。それはあなたがPythonで、ベクトルや行列計算を実行することを可能にし、基本的な機能の多くは、実際にCで書かれているので、あなたはネイティブのPythonを体験することができ、速さを体験することができません。

numpyのは、あなたがPythonで科学的データおよび/または機械学習を入力したい場合、あなたはそれを学ぶ必要があります、間違いなく科学のPythonの成功の鍵の一つです。私の意見では、numpyののAPIの設計は非常によく、私たちはそれが難しいことではありません使用して開始する必要があります。

これは、第二の科学論文は、他のヨーヨーを見て忘れてはいけないのPythonのシリーズです(翻訳者注:すべての記事、記事の除去だけを放出しません)。

すごいああ、あなたはnumpyのは、あなたのパートナーになると一緒に物事をやらせる大丈夫、素晴らしいです。

アレイベース

配列を作成します。

numpyのこれらのものの周りと呼ばれる配列が展開します。実際には、それが呼ばれndarrays、あなたはすべての権利を知りません。numpyのを提供し、これらの配列を使用することで、私たちは、このようなベクトルや行列、線形代数や他の数学として、電光石火の速さで便利なさまざまな操作を行うことができます!(冗談、この記事では、数学のいずれかの力仕事をしないだろう)

# 1D Array
a = np.array([0, 1, 2, 3, 4])
b = np.array((0, 1, 2, 3, 4))
c = np.arange(5)
d = np.linspace(0, 2*np.pi, 5)

print(a) # >>>[0 1 2 3 4]
print(b) # >>>[0 1 2 3 4]
print(c) # >>>[0 1 2 3 4]
print(d) # >>>[ 0.          1.57079633  3.14159265  4.71238898  6.28318531]
print(a[3]) # >>>3

上記のコードは、アレイを作成するために、4つの方法を示しています。あなたではなく、共通のリスト(一覧表)データ型よりも、任意のシーケンス(配列型)を渡すことができます。最も基本的な方法は、numpyのアレイ()の一連の関数に渡されます。

我々は長さの異なる数字の配列を印刷するとき、それは自動的に記入されますのでご注意ください。これは、行列を表示するのに便利です。リストまたは任意の他のPythonの配列と同じインデックスの配列。あなたは、スライスの詳細については、この記事を見たい場合にも、それらをスライスすることができ、私は、1次元配列をスライスするつもりはないnumpyの中国の書類-インデックスとスライスを

アレイ上の例では、我々は、多次元配列を使用し、マトリックスはより多くの情報を表現するためにどのように表示され、numpyのベクトルを表し使用する方法です。

# MD Array,
a = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28 ,29, 30],
              [31, 32, 33, 34, 35]])

print(a[2,4]) # >>>25

2D(二次元)アレイを作成するために、我々は、アレイ()関数のリストへのリスト(あるいは配列の配列)を渡します。我々は、3D(3次元)アレイをしたい場合は、それがそうで4D(四次元)配列、つまり、リストのリストのリストのリストである、とあれば、私たちは、リストのリストのリストをお届けします。

(スペースバー私たちの友人の助けを借りて)、2D(2次元)の配列を行と列に配置する方法となりますのでご注意ください。インデックス2D(二次元)アレイに、単純にすることができ、行と列の数を参照します。

その背後にあるいくつかの数学

これを正しく理解するために、私たちは本当に何ベクトルや行列はいをご覧ください。

大きさと方向を有するベクトル量。彼らはしばしば、速度、加速度と運動量や他のものを表すために使用されています。それらは(1,4,6,9)として、フォームnタプルに書き込まれていることで、私たちに最も有用であるがベクターは、様々な方法で記述することができます。これは、私たちがnumpyの中でそれらを表現する方法です。

それは行と列で構成されていることを除いて、同様の行列ベクトル、グリッドなど。なお、基準値をその行と列のマトリックスで与えられます。numpyのでは、我々は我々の前に行っていたと同じように、一連のシーケンスを渡すことによって、アレイを作成する必要があります。

簡単な線形代数を示しています

多次元配列スライス

スライス多次元配列1次元配列は、それよりも複雑なビット、およびnumpyのを使用するときは、多くの場合、使用する必要があります。

# MD slicing
print(a[0, 1:4]) # >>>[12 13 14]
print(a[1:4, 0]) # >>>[16 21 26]
print(a[::2,::2]) # >>>[[11 13 15]
                  #     [21 23 25]
                  #     [31 33 35]]
print(a[:, 1]) # >>>[12 17 22 27 32]

あなたが見ることができるように、あなたは、多次元配列をスライスしてコンマで区切られた各ディメンションの別のセクションを実行することができます。従って、2Dアレイ、我々は最初のシートの行を定義するスライスに対して、第二シートが柱部を画定します。

あなただけの行または列を指定する番号を入力することもできます。アレイから0番目の列選択の上記の最初の例。

以下のチャートは、与えられた例では、セクションの仕組みで示します。

numpyの配列スライスの作品

配列のプロパティ

numpyのを使用するときは、特定の情報の配列を知ることになるでしょう。幸いなことに、このバッグの中にその中に必要な情報を与えることができる便利なメソッドが多く含まれています。

# Array properties
a = np.array([[11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25],
              [26, 27, 28 ,29, 30],
              [31, 32, 33, 34, 35]])

print(type(a)) # >>><class 'numpy.ndarray'>
print(a.dtype) # >>>int64
print(a.size) # >>>25
print(a.shape) # >>>(5, 5)
print(a.itemsize) # >>>8
print(a.ndim) # >>>2
print(a.nbytes) # >>>200

あなたは上記のコードで見ることができるように、numpyの配列は、実際にndarrayと呼ばれます。私は性交が、誰もが知っている場合は、メッセージを残してください、ndarrayと呼ばれる理由がわかりません!私はそれがn次元アレイを表して推測します。

その形状となるように、それは、(5,5)、アレイは、5つの以上の行5を有している、アレイの形状は、行と列の数で有しています。

itemsizeプロパティは、エントリあたりのバイト数で占められています。データアレイ64のこの型はint、int型64は、64ビットを持つバイトが64で割っ8で割った8ビットを持って、あなたはそれが本実施例8で、占めるバイト数を取得することができます。

ndim属性には、配列の次元です。これは、二つがあります。例えば、一つだけのベクトル。

nbytesすべてのプロパティは、データアレイで消費されるバイト数です。あなたは、これは、アレイのコストをカウントしないことに注意しなければならないので、配列によって占められる実際のスペースはわずかに大きくなります。

配列を使用

基本的な演算子

ちょうど作成し、あなたのニーズを満たすことができない配列要素や属性から取得する機能、あなたは時々、彼らは数学にする必要があります。算術演算を完了するために、/ - あなたは+、4つの演算子を使用することができます。

# Basic Operators
a = np.arange(25)
a = a.reshape((5, 5))

b = np.array([10, 62, 1, 14, 2, 56, 79, 2, 1, 45,
              4, 92, 5, 55, 63, 43, 35, 6, 53, 24,
              56, 3, 56, 44, 78])
b = b.reshape((5,5))

print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a ** 2)
print(a < b) print(a > b)

print(a.dot(b))

またDOT()外では、これらの演算子は、アレイ要素ごとの動作です。(例えば、Bは、C)+(D、Eは、F()+ D、B + E、C + F)の結果です。また、別途、各要素のペア、およびそれらを計算します。結果は配列を返します。以下のような論理演算子を使用している場合、「<」と「>」のリターンは、ブール配列になりますと、これは良い使用され、我々は背後に言及することに注意してください。

DOT()関数は、2つの配列の内積を計算します。これはスカラー(方向だけでなく、大きさの値)の代わりに、配列を返します。

その背後にあるいくつかの数学

DOT()関数は、ドット積と呼ばれています。これを理解する最良の方法は、それがどのように計算されるかを示す図でビューを見ることです。

内積の動作原理

配列の特別な演算子

numpyのは、処理アレイのためのいくつかの他の有用な演算子を提供します。

# dot, sum, min, max, cumsum
a = np.arange(10)

print(a.sum()) # >>>45
print(a.min()) # >>>0
print(a.max()) # >>>9
print(a.cumsum()) # >>>[ 0  1  3  6 10 15 21 28 36 45]

合計()、演技分()とmax()関数は明らかです。すべての要素の合計が最小と最大の要素を検索します。

しかし、CUMSUM()関数は、それほど明白ではありません。その和のような()は、このような各要素を追加、それは第一要素と第二添加元素の上で、計算結果がリストに格納され、その結果を第3要素に追加されし、リストに格納します。これは、これを行うには、アレイ内のすべての要素が意志、およびアレイとのリストとしての実行の合計数を返します。

インデックスアドバンスト

ファンシーインデックス

花式索引 配列内の特定の要素は、私たちが手に入れたいの効果的な方法です。

# Fancy indexing
a = np.arange(0, 100, 10)
indices = [1, 5, -1]
b = a[indices]
print(a) # >>>[ 0 10 20 30 40 50 60 70 80 90]
print(b) # >>>[10 50 90]

あなたは上記の例でわかるように、私たちは、配列へのインデックスを取得したい特定のインデックスシーケンスを使用します。これは、順番にGoogleのインデックス要素のリストを返します。

ブールシールド

ブールシールドは、私たちが指定した基準を取得した配列の要素を可能にする便利な機能です。

# Boolean masking
import matplotlib.pyplot as plt

a = np.linspace(0, 2 * np.pi, 50)
b = np.sin(a)
plt.plot(a,b)
mask = b >= 0
plt.plot(a[mask], b[mask], 'bo')
mask = (b >= 0) & (a <= np.pi / 2)
plt.plot(a[mask], b[mask], 'go')
plt.show()

上記の例では、どのように、ブールマスキングを示しています。あなたは、条件のためにtrueを返すためにあなたが関与する条件の配列に配列を渡すされなければならない、それは価値のアレイを提供します。

この例では、次の図を生成します。

結果図ブールマスク

私たちは、マップ上の異なる点を選択するために、これらの基準を使用します。青い点は、(図にはさらに、緑色のドットを備え、緑色のドットは、青色ドットマスク)、全てが0点よりも大きな値を示しています。緑色のドットは0より大きく、πの全ての点の半分以下の値を表します。

#の デフォルトのインデックス

不完全なインデックスは、インデックス化や多次元配列の最初の次元からスライスを取得するための便利な方法です。例えば、配列A = [1,2,3,4,5]、[6,7,8,9,10]、次いで[3]配列の最初の次元でインデックス要素3について説明しますここで、値4です。

# Incomplete Indexing
a = np.arange(0, 100, 10)
b = a[:5]
c = a[a >= 50]
print(b) # >>>[ 0 10 20 30 40]
print(c) # >>>[50 60 70 80 90]

どこ機能

()関数は、条件に応じた値の配列を返す別の有効な方法です。ただ、条件に転送する必要があり、それは本当の要素を作るための条件のリストを返します。

# Where
a = np.arange(0, 100, 10)
b = np.where(a < 50) 
c = np.where(a >= 50)[0]
print(b) # >>>(array([0, 1, 2, 3, 4]),)
print(c) # >>>[5 6 7 8 9]

これは権利ではなく、懸命に、numpyのでしょうか?もちろん、この記事ではまた、あなたはすでにnumpyのの基礎に精通しているとき、あなたは世界のnumpyのの自由を探求し始めることができ、他の多くの楽しいことを行うことができますnumpyのに使い始めるの基本をカバーしています。

最後に、ああこの記事を共有することを忘れないでください

覚えておいて、他の人が見ることができるように、この記事を共有することを忘れないでください!また、ツイッターやGoogle+で私を、このブログのメーリングリストに登録フォローすることを忘れないでください、あなたは、任意の貴重な記事をお見逃しなく!

あなたが共有、またはのような聞きしたいしたい、と言うために何かを持っている場合、私はすべてのコメントを読んで、以下のメッセージを残してください!

記事のソース

:に翻訳されたドキュメントのnumpyの中国語の翻訳、原作者がRavikiran Srinivasuluあり、https://www.pluralsight.com/guides/different-ways-create-numpy-arrays

おすすめ

転載: www.cnblogs.com/sogeisetsu/p/11369032.html