[再版]詳細なNumpy.ndarray

参照リンク:Pythonのnumpy.ascontiguousarray

ベクトル、行列、多次元配列は数値計算に不可欠なツールです。配列データのバッチ処理により、配列要素に対する明示的なループ操作が回避されます。その結果、簡潔で保守しやすいコードが得られます。また、低レベルのコードを使用できます。配列操作を実装するためのライブラリ。したがって、ベクトル化された計算は、要素ごとに順番に計算を実行するよりもはるかに高速です。 

Pythonの科学計算環境では、Numpyライブラリは配列を処理するための効率的なデータ構造を提供し、NumpyのコアはC言語で実装され、配列を処理および処理するための多くの関数を提供します。 

NumPyはPythonよりも多くの種類の数値をサポートしており、5つの基本的な数値の種類があります。 

ブール(bool)整数(int)符号なし整数(uint)浮動小数点(float)複素数(complex) 

 

 

 記事のディレクトリ

 1.Numpy配列を作成します1.np.arrayはnp.array()とnp.ndarray()によって作成されます

   2.基本属性、メモリレイアウトデータ型およびその他の属性

   3. Numpyネイティブアレイの作成ndarray4、np.arange

  2.既存のデータから作成します3.マトリックスを作成します

 

 

 

Numpyライブラリのコアは、同種の多次元データを表すことです。各要素は同じサイズのメモリブロックを占有し、すべてのブロックはまったく同じ方法で解釈されます。配列内の各要素を解釈する方法は、個別のデータ型オブジェクトによって指定され、そのうちの1つが各配列に関連付けられています。基本型(整数、浮動小数点など)に加えて、データ型オブジェクトはデータ構造を表すこともできます。  

 

 

1.Numpy配列を作成します 

NumPyは、同じタイプの「アイテム」のコレクションを記述するN次元配列タイプndarrayを提供します。たとえば、N個の整数を使用してアイテムにインデックスを付けることができます。配列から(たとえば、インデックスによって)抽出されたアイテムは、Pythonオブジェクトによって表されます。このオブジェクトの型は、NumPyで構築された配列スカラー型の1つです。配列スカラーを使用すると、より複雑なデータ配置を簡単に操作できます。 

 

 ndarrayと配列np.arrayの違いは、ndarrayを作成するための便利な関数であり、クラス自体ではありません。ndarray配列は、np.ndarrayクラスのオブジェクトで表されるn次元配列オブジェクトであるため、ndarrayはクラスオブジェクトであり、arrayはメソッドです。 

 

配列を作成するための5つの一般的なメカニズムがあります。 

他のPython構造(リスト、タプルなど)からnumpyネイティブ配列(arange、1、0など)の作成への変換標準形式かカスタム形式かに関係なく、ディスクから配列を読み取ります。文字列またはバッファの使用特別なライブラリ関数(ランダムなど)を使用して生のバイトの配列を作成します 

 

1、np.array 

ndarrayは、同じタイプとサイズのアイテムを含む(通常は固定サイズの)多次元コンテナーです。配列内のアイテムのサイズと数は、その形状によって定義されます。これは、各次元のサイズを指定するために使用される、N個の非負の整数で構成されるタプル(タプル)です。配列内の項目のタイプは、個別のデータ型オブジェクト(dtype)によって指定され、そのうちの1つが各ndarrayに関連付けられています。 

Pythonの他のコンテナオブジェクトと同様に、ndarrayのコンテンツには、配列にインデックスを付けたりスライスしたり(たとえば、N個の整数を使用)したり、ndarrayのメソッドや属性を使用したりしてアクセスおよび変更できます。 

違いは、ndarrayは同じデータを共有できるため、あるndarrayで行われた変更が別のndarrayで表示される場合があることです。言い換えると、ndarrayは別のndarrayの「ビュー」である可能性があり、それが参照するデータは「ベース」ndarrayによって処理されます。ndarraysは、Pythonが所有するメモリ文字列、またはバッファまたは配列インターフェイスを実装するオブジェクトのビューにすることもできます。 

np.array()およびnp.ndarray()によって作成されました 

#配列を作成します。

np.array(object、dtype = None、copy = True、order = 'K'、subok = False、ndmin = 0)

 

 

 

np.ndarray(shape、dtype = float、buffer = None、offset = 0、strides = None、order = None)

 

 

ndarrayは、同じタイプとサイズのアイテムの多次元コンテナです。配列内のアイテムのサイズと数は、その形状によって定義されます。これは、各次元のサイズを指定するために使用される、N個の非負の整数で構成されるタプル(タプル)です。 

違いは、ndarrayは同じデータを共有できるため、あるndarrayで行われた変更が別のndarrayで表示される場合があることです。言い換えると、ndarrayは別のndarrayの「ビュー」である可能性があり、それが参照するデータは「ベース」ndarrayによって処理されます。ndarraysは、Pythonが所有するメモリ文字列、またはバッファまたは配列インターフェイスを実装するオブジェクトのビューにすることもできます。 

 

例: 

>>> np.array([1、2、3])

array([1、2、3])

 

>>> np.array([1、2、3.0])

array([1.、2.、3。])

 

>>> np.array([[1、2]、[3、4]])

配列([[1、2]、

[3、4]])

 

>>> np.array([1、2、3]、ndmin = 2)

array([[1、2、3]])

 

>>> np.array([1、2、3]、dtype = complex)

array([1。+ 0.j、2。+ 0.j、3。+ 0.j])

 

>>> x = np.array([(1,2)、(3,4)]、dtype = [( 'a'、 '<i4')、( 'b'、 '<i4')])

>>> x ['a']

array([1、3])

 

>>> np.array(np.mat( '1 2; 3 4'))

配列([[1、2]、

[3、4]])

 

>>> np.array(np.mat( '1 2; 3 4')、subok = True)

マトリックス([[1、2]、

[3、4]])

 

 

 

 

>>> np.ndarray(shape =(2,2)、dtype = float、order = 'F')

配列([[-1.13698227e + 002、4.25087011e-303]、

[2.88528414e-306、3.27025015e-309]])#random

 

>>> np.ndarray((2、)、buffer = np.array([1,2,3])、

offset = np.int _()。itemsize、

dtype = int)#offset = 1 * itemsize、つまり最初の要素をスキップする

array([2、3])

 

2.基本属性 

配列属性は、配列自体の固有の情報を反映します。一般に、プロパティを介して配列にアクセスすると、新しい配列を作成せずに、配列の内部プロパティを取得したり、場合によっては設定したりできます。公開されたプロパティは配列のコア部分であり、新しい配列を作成せずに意味のあるリセットができるのは一部のプロパティのみです。各属性に関する情報は次のとおりです。 

メモリレイアウト 

次のプロパティには、アレイのメモリレイアウトに関する情報が含まれています。 

         メソッドの説明

| ndarray.flags |配列のメモリレイアウトに関する情報。                    

| ndarray.shape |配列次元のタプル。                            

| ndarray.strides |配列をトラバースするときの各次元のバイトタプル。            

| ndarray.ndim |配列の次元。                                

| ndarray.data | Pythonバッファオブジェクトは、配列内のデータの先頭を指します。        

| ndarray.size |配列内の要素の数。                            

| ndarray.itemsize |配列要素の長さ(バイト単位)。            

| ndarray.nbytes |配列要素によって消費された合計バイト数。                    

| ndarray.base |メモリが他のオブジェクトからのものである場合、それはベースオブジェクトです。        

 

データの種類 

配列に関連付けられているデータ型オブジェクトは、dtype属性にあります。 

         方法|説明

| ndarray.dtype |配列要素のデータ型。                        

 

その他の属性 

         方法|説明

| ndarray.T |配列を転置します。                                

| ndarray.real |配列の実数部。                            

| ndarray.imag |配列の虚数部。                                

| ndarray.flat |配列上の1次元イテレーター。                        

| ndarray.ctypes |配列とctypesモジュール間の相互作用を単純化するオブジェクト。        

 

 

3.Numpyネイティブ配列はndarrayを作成します 

                方法|説明 

| eye(N [、M、k、dtype、order])|対角線上に1つ、他の場所に0の2次元配列を返します

| identity(n [、dtype])| ID配列を返します。 

 

| ones(shape [、dtype、order])|指定された形状とタイプの新しい配列を1で埋めて返します

| ones_like(a [、dtype、order、subok、shape])|指定された配列と同じ形状と型の配列を返します。

| zeros(shape [、dtype、order])|ゼロで埋められた、指定された形状とタイプの新しい配列を返します。

| zeros_like(a [、dtype、order、subok、shape])|指定された配列と同じ形状とタイプのゼロの配列を返します。 

| full(shape、fill_value [、dtype、order])|指定された形状とタイプの新しい配列を返し、fill_valueで埋めます

| full_like(a、fill_value [、dtype、order、…])|指定された配列と同じ形状とタイプの完全な配列を返します

| empty(shape [、dtype、order])|エントリを初期化せずに、指定された形状とタイプの新しい配列を返します

| empty_like(prototype [、dtype、order、subok、…])|指定された配列と同じ形状とタイプの新しい配列を返します

 

 

 zeros_like()、ones_like()、empty_like()などの_like()を持つ関数は、パラメーター配列と同じ形状と型の配列を作成します。Frombuffer()、fromstring()、fromfile()およびその他の関数は、バイトシーケンスまたはファイルから配列を作成できます。  

4、np.arange 

|方法|説明 

| arange([start、] stop [、step、] [、dtype])|指定された間隔内で等間隔の値を返します。

| linspace(start、stop [、num、endpoint、…])|指定された間隔で等しい間隔番号を返します。

| logspace(start、stop [、num、endpoint、base、…])|返される数値は対数スケールで均等に分散されます。  

| geomspace(start、stop [、num、endpoint、…])|対数目盛(等比数列)で均一に分布した数値を返します。       

| meshgrid(* xi、** kwargs)|座標ベクトルから座標行列を返します。 

| mgridnd_grid |インスタンス、高密度の多次元「メッシュグリッド」を返します

| ogridnd_grid |インスタンス、それは開いた多次元の「メッシュグリッド」を返します

        

 

2.既存のデータから作成します 

                        メソッドの説明

| array(object [、dtype、copy、order、subok、ndmin])|配列を作成します

| asarray(a [、dtype、order])|入力を配列に変換します

| asanyarray(a [、dtype、order])|入力をndarrayに変換しますが、ndarrayサブクラスを使用します

| ascontiguousarray(a [、dtype])|メモリ内の連続した配列を返します(ndim> = 1)(C順序)

| asmatrix(data [、dtype])|入力を行列として解釈します

| copy(a [、order])|指定されたオブジェクトの配列コピーを返します

| frombuffer(buffer [、dtype、count、offset])|バッファーを1次元配列として解釈します

| fromfile(file [、dtype、count、sep、offset])|テキストまたはバイナリファイルのデータに基づいて配列を作成します

| fromfunction(function、shape、** kwargs)|各座標で関数を実行して配列を作成します

| fromiter(iterable、dtype [、count])|反復可能なオブジェクトから新しい1次元配列を作成します

| fromstring(string [、dtype、count、sep])|文字列内のテキストデータから初期化された新しい1次元配列

| loadtxt(fname [、dtype、comments、delimiter、…])|テキストファイルからデータをロードします

 

3.マトリックスを作成します 

             方法|説明  

| mat(data [、dtype])|入力を行列として解釈します

| bmat(obj [、ldict、gdict])|文字列、ネストされたシーケンス、または配列から行列オブジェクトを作成します

 

| tril(m [、k])|配列の下三角。                               

| triu(m [、k])|配列の上三角形。                               

| vander(x [、N、増加])|ファンデルモンド行列を生成する        

 

| diag(v [、k])|対角線を抽出するか、対角線の配列を作成します。                 

| diagflat(v [、k])|フラット化された入力を対角線として使用して2次元配列を作成します。       

| tri(N [、M、k、dtype])|指定された対角線以下の配列で、他の場所ではゼロ。

おすすめ

転載: blog.csdn.net/u013946150/article/details/113057547