ホームページ >バックエンド開発 >Python チュートリアル >numpy 配列の簡単な例 splicing_python
この記事では、主に numpy 配列の概要、numpy 配列のプロパティなど、numpy 配列のスプライシングの簡単な例を紹介します。必要な友人は参考にしてください。
NumPy 配列は、ndarray と呼ばれる多次元配列オブジェクトです。これは 2 つの部分で構成されます:
·実際のデータ
·これらのデータを説明するメタデータ
ほとんどの操作はメタデータのみを対象とし、基礎となる実際のデータは変更しません。
NumPy 配列について知っておくべきことがいくつかあります:
· NumPy 配列の添字は 0 から始まります。
·同じ NumPy 配列内のすべての要素の型は同じである必要があります。
NumPy配列のプロパティ
NumPy配列を詳しく紹介する前に。まず、NumPy 配列の基本プロパティを詳しく紹介します。 NumPy 配列の次元はランクと呼ばれ、1 次元配列のランクは 1、2 次元配列のランクは 2 などとなります。 NumPy では、各線形配列は軸 (axes) と呼ばれ、ランクは実際には軸の数を表します。たとえば、2 次元配列は 2 つの 1 次元配列と等価で、最初の 1 次元配列の各要素は別の 1 次元配列です。したがって、1 次元配列は NumPy の軸 (axes) です。最初の軸は基になる配列に相当し、2 番目の軸は基になる配列内の配列になります。軸の数、つまりランクは配列の次元です。
NumPy 配列のより重要な ndarray オブジェクト属性は次のとおりです:
1.ndarray.ndim: 配列の次元 (つまり、配列軸の数)。ランクに等しい。最も一般的なのは 2 次元配列 (行列) です。
2.ndarray.shape: 配列の次元。各次元の配列のサイズを表す整数のタプルです。たとえば、2次元配列の場合、配列の「行数」と「列数」を表します。 ndarray.shape は、長さが次元数、つまり ndim 属性であるタプルを返します。
3.ndarray.size: 配列要素の合計数は、shape 属性のタプル要素の積に等しくなります。
4.ndarray.dtype: 配列内の要素の型を表すオブジェクト。標準の Python 型を使用して作成または指定できます。また、前回の記事で紹介したNumPyが提供するデータ型も利用できます。
5.ndarray.itemsize: 配列内の各要素のバイト サイズ。たとえば、要素タイプが float64 である配列の itemsiz 属性値は 8 です (float64 は 64 ビットを占有し、各バイトの長さは 8 であるため、64/8 で 8 バイトを占有します)。別の例は、要素タイプが次の配列です。 complex32。配列項目の属性は 4 (32/8) です。
6.ndarray.data: 実際の配列要素を含むバッファ。要素は通常、配列のインデックスを通じて取得されるため、通常はこの属性を使用する必要はありません。
配列の結合方法1
アイデア: まず配列をリストに変換し、次にリストの結合関数append()、extend()などを使用して結合処理を実行し、最後にリストをリストに変換します。配列。
例 1:
>>> import numpy as np >>> a=np.array([1,2,5]) >>> b=np.array([10,12,15]) >>> a_list=list(a) >>> b_list=list(b) >>> a_list.extend(b_list) >>> a_list [1, 2, 5, 10, 12, 15] >>> a=np.array(a_list) >>> a array([ 1, 2, 5, 10, 12, 15])
この方法は、単純な 1 次元配列の結合にのみ適しています。変換プロセスには時間がかかるため、大量のデータの結合には一般的に推奨されません。
配列のスプライシング方法 2
アイデア: numpy は、numpy.append(arr,values,axis=None) 関数を提供します。パラメーターを指定するには、1 つの配列と 1 つの値、または 2 つの配列を直接追加して結合することはできません。 append 関数は常に 1 次元配列を返します。
例 2:
>>> a=np.arange(5) >>> a array([0, 1, 2, 3, 4]) >>> np.append(a,10) array([ 0, 1, 2, 3, 4, 10]) >>> a array([0, 1, 2, 3, 4]) >>> b=np.array([11,22,33]) >>> b array([11, 22, 33]) >>> np.append(a,b) array([ 0, 1, 2, 3, 4, 11, 22, 33]) >>> a array([[1, 2, 3], [4, 5, 6]]) >>> b=np.array([[7,8,9],[10,11,12]]) >>> b array([[ 7, 8, 9], [10, 11, 12]]) >>> np.append(a,b) array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
Numpy の配列には、サイズを動的に変更する機能がありません。numpy.append() 関数は、毎回配列全体を再割り当てし、元の配列を新しい配列にコピーします。 。
配列の結合方法 3
アイデア: numpy は、numpy.concatenate((a1,a2,...),axis=0) 関数を提供します。複数のアレイのスプライシングを一度に完了できます。ここで、a1、a2、... は配列型のパラメーターです
例 3:
>>> a=np.array([1,2,3]) >>> b=np.array([11,22,33]) >>> c=np.array([44,55,66]) >>> np.concatenate((a,b,c),axis=0) # 默认情况下,axis=0可以不写 array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) #对于一维数组拼接,axis的值不影响最后的结果 >>> a=np.array([[1,2,3],[4,5,6]]) >>> b=np.array([[11,21,31],[7,8,9]]) >>> np.concatenate((a,b),axis=0) array([[ 1, 2, 3], [ 4, 5, 6], [11, 21, 31], [ 7, 8, 9]]) >>> np.concatenate((a,b),axis=1) #axis=1表示对应行的数组进行拼接 array([[ 1, 2, 3, 11, 21, 31], [ 4, 5, 6, 7, 8, 9]])
2 つの関数 numpy.append() と numpy.concatenate() の実行時間を比較します
例 4 :
>>> from time import clock as now >>> a=np.arange(9999) >>> b=np.arange(9999) >>> time1=now() >>> c=np.append(a,b) >>> time2=now() >>> print time2-time1 28.2316728446 >>> a=np.arange(9999) >>> b=np.arange(9999) >>> time1=now() >>> c=np.concatenate((a,b),axis=0) >>> time2=now() >>> print time2-time1 20.3934997107
concatenate() の方が効率的で、大規模なデータの結合に適していることがわかります
まとめ
上記は、簡単なデータの結合に関するこの記事の全内容ですnumpy 配列のスプライシングの例。皆さんのお役に立てば幸いです。興味のある方は、引き続きこのサイトを参照してください:
関連する推奨事項:
numpy 行列メソッドに列を追加する Python プログラミングの例
に基づいて対称行列を作成する Python メソッドnumpy モジュール
以上がnumpy 配列の簡単な例 splicing_pythonの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。