目次
注意してください、迷子にならないようにしてください。間違いがある場合は、メッセージを残してアドバイスをお願いします。どうもありがとうございました
序文
データ解析の三大巨頭、Pandas、matplotlib、NumPy の 1 つとして、顔については別途説明が必要です。NumPy アプリケーションのシナリオは非常に幅広く、多くの Pandas 関数が NumPy 配列データ構造に変換されます。機械学習、深層学習、および一部のデータ処理操作では、Pandas よりも頻繁に使用されます。さらに、NumPy は強力で使いやすく、さまざまな複雑な操作をサポートしています。私は通常、Pandas といくつかの機械学習の記事で NumPy を使用していますが、ブログ コンテンツでは NumPy の操作について詳しく説明しておらず、NumPy の操作に関する特定の関数の回答も記録していません。私のようなワンストップ サービスのニーズを追求するブロガーには本当に不適切なので、古いピットを埋めて、新しい 1 テキストの速度学習シリーズ - Numpy データ分析の基礎コラムを公開します。
この一連の記事は、私のコラム 1 である一連の高速学習 - NumPy データ分析基盤に含まれます。これは基本的に、NumPy データを使用して日常のビジネスとルーチンの数学的モデリング分析と複雑な操作を分析することをカバーしています。基本的な配列操作から、行列やベクトル機能の処理などの複雑な操作、およびプロの NumPy 共通関数まで、多くの時間と考えを費やして作成します. データ分析またはデータ開発に従事する必要がある場合, 数学的モデリング, 友達Python 工学の専門家がコラムを購読することをお勧めします. このブログは長いので、読んで実践する価値があります. 最良の部分を選んで、詳細に実践について話します. ブロガーはブログの投稿を長く続けますので、間違いや疑問点があればコメント欄で指摘していただけると助かります。
今号の内容は、主にndarrayの各種属性の対応する出力関数、作成方法、出力印刷方法を詳しく解説しています。
まず、軸配列の軸
NumPy の主なオブジェクトは同種の多次元配列です。これは要素 (通常は数値) のテーブルであり、負でない整数のタプルによってインデックス付けされた同じ型のすべての要素です。NumPy では、次元は軸と呼ばれます。
たとえば、3D 空間の点の座標配列 [1, 2, 3] には軸があります。この軸には 3 つの要素があるため、長さ 3 であると言います。ここで、この行列を xy 軸で理解できます。
[[1, 2, 3],
[0, 1, 2]]
最初の軸はサイズ 2 の y 軸で、2 番目の軸はサイズ 3 の x 軸です。
2.ndarray 属性
NumPy の配列クラスは ndarray と呼ばれます。numpy 配列 ndarray は、1 次元配列のみを処理し、関数が少ない標準 Python ライブラリの配列とは異なることに注意してください。ndarray オブジェクトのより重要なプロパティは次のとおりです。
- ndarray.ndim
- 配列の軸 (次元) の数。
- ndarray.shape
- 配列の次元。これは、各次元の配列のサイズを表す整数のタプルです。n 行 m 列の行列の場合、配列構造は (n, m) になります。
- ndarray.size
- 配列の要素の総数。配列構造の要素数に等しい。
- ndarray.dtype
- 配列内の要素の型を記述するオブジェクト。dtype は、標準の Python 型を使用して作成または指定できます。さらに、NumPy は独自の型を提供します。numpy.int32、numpy.int16、numpy.float64。
- ndarray.itemsize
- 配列の各要素のバイト単位のサイズ。たとえば、float64 型の要素の配列には
itemsize
8 (=64/8) があり、complex32 型の要素の 1 つにはitemsize
4 (=32/8) があります。ndarray.dtype.itemsize と同等です。
- 配列の各要素のバイト単位のサイズ。たとえば、float64 型の要素の配列には
- ndarray.data
- 配列の実際の要素を含むバッファー。通常、このプロパティを使用する必要はありません。自動インデックス作成ツールが配列内の要素にアクセスします。
コード表示:
import numpy as np
a=np.array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[8, 9, 10, 11]])
a
ndarray.ndim
配列次元:
a.ndim
ndarray.shape
配列次元:
a.shape
ndarray.size
配列の要素の総数:
a.size
ndarray.dtype
配列内の要素型のオブジェクト:
a.dtype
ndarray.itemsize
a.itemsize
int は 4 バイト
ndarray.data
配列の実際の要素のバッファ:
a.data
三、ndarray作成
配列は、配列関数を使用して通常の Python リストまたはタプルから作成できます。結果の配列の型は、シーケンス内の要素の型から推測されます。
1.配列()
たとえば、次の例を示しました。
a=np.array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[8, 9, 10, 11]])
彼のデータ型が int32 であると推測し、配列を変更します。
b=np.array([ 0.1, 1.1, 2.1, 3.1])
b.dtype
要素の型に基づいて float64 に推定されます。
配列関数は、シーケンスを 2 次元配列に、シーケンスを 3 次元配列に変換できます。
b=np.array([(1,2,3),(4,5,6)])
b
配列の型は、作成時に明示的に指定することもできます。
b=np.array([(1,2,3),(4,5,6)], dtype=float)
b
2.zeros()/ones()/empty()
関数 zeros はゼロでいっぱいの配列を作成し、関数 ones は 1 でいっぱいの配列を作成し、関数 empty はメモリの状態に応じて初期内容がランダムな配列を作成します。デフォルトでは、作成される配列の dtype は float64 ですが、キーワード引数 dtype で指定できます。
np.zeros((2, 3))
np.ones((2, 3, 4), dtype=np.int16)
最初の 1 パラメータは行列の数で、次に次元です。
np.empty((2, 3))
3.arange()/linspace()
数値のシーケンスを作成するために、NumPy は arange 関数を提供します。これは Python の組み込み range に似ていますが、配列を返します。
np.arange(0, 10, 2)
浮動小数点引数で arange を使用すると、浮動小数点の精度が制限されているため、取得される要素の数が予測できないことがよくあります。したがって、必要な要素の数をパラメーターとして受け取る関数 linspace を使用することをお勧めします。
np.linspace(0, 2, 6)
0 は初期値、2 は終了値、6 は分割数です。
4番目、ndarray出力
配列を出力するとき、NumPy はネストされたリストと同様の方法で配列を次のレイアウトで表示します。
- 最後の軸は左から右に印刷されます
- 最後から 2 番目が上から下に印刷されます
- 残りの部分も上から下に印刷され、各スライスと次のスライスを区切る空白行があります
1D 配列は行として、2D は行列として、3D は行列のリストとして出力されます。
a=np.arange(4)
print(a)
a=np.array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[8, 9, 10, 11]])
print(a)
print(np.ones((2, 3, 4), dtype=np.int16))
配列が印刷するには大きすぎる場合、NumPy は自動的に配列の中央部分をスキップし、角だけを印刷します。
print(np.arange(10000))
この動作を無効にして、NumPy に配列全体を印刷させるには、set_printoptions を使用して印刷オプションを変更します。
np.set_printoptions(threshold=sys.maxsize)
注意してください、迷子にならないようにしてください。間違いがある場合は、メッセージを残してアドバイスをお願いします。どうもありがとうございました
この問題は以上です。ご不明な点がございましたら、お気軽にメッセージを残してください。次号でお会いしましょう