配列—Pythonでの数値の効率的な配列
配列は、C / C ++、Javaなどで非常に一般的なデータ構造です。これらの言語では、配列は、類似したデータ型の複数の要素のコレクションとして定義されます。 Pythonには、配列に相当するものは組み込まれていません。リストとタプルは要素のコレクションですが、タイプが異なる場合があります。
Pythonの配列モジュールはC型配列をエミュレートします。モジュールは「配列」クラスを定義します。次のコンストラクターは配列オブジェクトを作成します:
array(typecode, initializer)
typecode引数は、配列のタイプを決定します。イニシャライザーは、一致するタイプのすべての要素を含むシーケンスである必要があります。
次のステートメントは、整数配列オブジェクトを作成します:
>>> import array >>> arr = array.array('i', range(5)) >>> arr array('i', [0, 1, 2, 3, 4]) >>> type(arr) <class 'array.array'> >>> array.typecodes 'bBuhHiIlLqQfd'
配列モジュールは、文字列を返すtypecodes属性を定義します。文字列の各文字は、C型および同等のPython型を示す型コードを表します。
Cタイプ | Pythonタイプ | |
---|---|---|
'b' | int | |
'B' | unsigned char | int |
'u' | Py_UNICODE | |
'h' | int | |
'H' | unsigned short | int |
'i' | signed int | int |
'私' | unsigned int | int |
'l' | int | |
'L' | unsigned long | int |
'q' | int | |
'Q' | unsigned long long | int |
'f' | ||
'd' | double |
イニシャライザ引数は、オブジェクトのようなバイトにすることができます。次の例では、文字列のバイト表現から配列を作成します。
>>> arr1 = array.array('b', b'Hello') >>> arr1 array('b', [72, 101, 108, 108, 111])
配列クラスは次のメソッドを定義します:
array.buffer_info()
このメソッドは、現在のメモリアドレスと、配列の内容を保持するために使用されるバッファの要素の長さを示すタプル(アドレス、長さ)を返します。
>>> arr = array.array('i', [0, 1, 2, 3, 4]) >>> arr.buffer_info() (2201141755144, 5)
count()
このメソッドは、配列内の特定の要素の出現回数を返します。
>>> arr = array.array('i', [0, 1, 2, 3, 4]) >>> arr.count(2) 1
extend()
このメソッドは、iterableから配列の最後またはiterableにアイテムを追加します。これらのアイテムは、まったく同じタイプコードである必要があります。そうでない場合、TypeErrorが発生します。
>>> arr = array.array('i', [0, 1, 2, 3, 4]) >>> arr1 = array.array('i',[10,20,30]) >>> arr.extend(arr1) >>> arr array('i', [0, 1, 2, 3, 4, 10, 20, 30])
fromfile()
このメソッドは、ファイルオブジェクトからn個のアイテムを(マシン値として)読み取り、配列に追加します。
次の例では、最初にファイルをバイナリ書き込みモードで開きます。
>>> file = open('test.txt','wb') >>> file.write(b'Hello Python') 12 >>> file.close()
このファイルを使用して、データを配列オブジェクトに追加します。
>>> a = array.array('i') >>> file = open('test.txt','rb') >>> a.fromfile(file,file.tell()) >>> a array('i', [1819043144, 2035294319, 1852794996])
append()
このメソッドは、配列の最後に新しいアイテムを追加します
fromlist()
このメソッドは、リストの項目を配列に追加します。これは、リスト内のxの場合と同等です:a.append(x)
>>> a = array.array('i') >>> a.append(10) >>> a array('i', [10]) >>> num = [20,30,40,50] >>> a.fromlist(num) >>> a array('i', [10, 20, 30, 40, 50])
insert()
指定された位置の前に配列に新しいアイテムを挿入します
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> a.insert(2,25) >>> a array('i', [10, 20, 25, 30, 40, 50])
pop()
このメソッドは、配列からアイテムを削除した後、指定されたインデックスのアイテムを返します。
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> x = a.pop(2) >>> x 30 >>> a array('i', [10, 20, 40, 50])
remove()
このメソッドは、指定されたアイテムの最初の出現を配列から削除します。
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> a.remove(30) >>> a array('i', [10, 20, 40, 50])
tofile()
このメソッドは、書き込み権限が有効になっているファイルオブジェクトにすべてのアイテムを書き込みます。
>>> a = array.array('i', [10, 20, 30, 40, 50]) >>> file = open("test.txt","wb") >>> a.tofile(file) >>> file.close() >>> file = open("test.txt","rb") >>> file.read() b'\n\x00\x00\x00\x14\x00\x00\x00\x1e\x00\x00\x00(\x00\x00\x002\x00\x00\x00'
-
Pythonで指定されたnumpy配列のデータ型を変更する
astype(data_type)というメソッドがあります numpy配列のデータ型を変更します。タイプfloat64のnumpy配列がある場合 、次にそれを int32に変更できます astype()にデータ型を指定する numpy配列のメソッド。 dtype を使用して、numpy配列のタイプを確認できます。 クラス。サンプルのnumpy配列のデータ型を確認しましょう。 例 # importing numpy library import numpy as np # creating numpy array array = np.array([1, 2, 3, 4, 5]) # pr
-
Python数値タイプ
Pythonには、いくつかの異なる数値タイプがあります。これらは整数型の数値、浮動小数点数、複素数です。複素数には、実数の2つの部分があります。 およびimag 。複素数は(a + bj)のように表されます。 分数と呼ばれる別の関数があります。分数は有理数を保持し、小数は浮動小数点数を保持します。 int()、float()、complex()などの一部の関数は、数値を整数、浮動小数点数、または複素数に変換するために使用されます。 これらの数値型の操作と関数の一部は次のとおりです- Sr.No。 操作/機能と説明 1 x + y xとyの合計 2