NumPy-既存のデータからの配列
この章では、既存のデータから配列を作成する方法について説明します。
numpy.asarray
この関数は、パラメーターが少ないことを除けば、numpy.arrayに似ています。このルーチンは、Pythonシーケンスをndarrayに変換するのに役立ちます。
numpy.asarray(a, dtype = None, order = None)
コンストラクターは次のパラメーターを取ります。
シニア番号 | パラメータと説明 |
---|---|
1 | a リスト、タプルのリスト、タプル、タプルのタプル、リストのタプルなど、任意の形式でデータを入力します |
2 | dtype デフォルトでは、入力データのデータ型は結果のndarrayに適用されます |
3 | order C(行メジャー)またはF(列メジャー)。Cがデフォルトです |
次の例は、 asarray 関数。
例1
# convert list to ndarray
import numpy as np
x = [1,2,3]
a = np.asarray(x)
print a
その出力は次のようになります-
[1 2 3]
例2
# dtype is set
import numpy as np
x = [1,2,3]
a = np.asarray(x, dtype = float)
print a
これで、出力は次のようになります。
[ 1. 2. 3.]
例3
# ndarray from tuple
import numpy as np
x = (1,2,3)
a = np.asarray(x)
print a
その出力は次のようになります-
[1 2 3]
例4
# ndarray from list of tuples
import numpy as np
x = [(1,2,3),(4,5)]
a = np.asarray(x)
print a
ここで、出力は次のようになります-
[(1, 2, 3) (4, 5)]
numpy.frombuffer
この関数は、バッファーを1次元配列として解釈します。バッファインターフェイスを公開するオブジェクトは、パラメータとして使用され、ndarray。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
コンストラクターは次のパラメーターを取ります。
シニア番号 | パラメータと説明 |
---|---|
1 | buffer バッファインターフェイスを公開するオブジェクト |
2 | dtype 返されたndarrayのデータ型。デフォルトはfloat |
3 | count 読み取るアイテムの数。デフォルトは-1はすべてのデータを意味します |
4 | offset 読み取る開始位置。デフォルトは0です |
例
次の例は、 frombuffer 関数。
import numpy as np
s = 'Hello World'
a = np.frombuffer(s, dtype = 'S1')
print a
これがその出力です-
['H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd']
numpy.fromiter
この関数は、 ndarray反復可能なオブジェクトからのオブジェクト。この関数によって、新しい1次元配列が返されます。
numpy.fromiter(iterable, dtype, count = -1)
ここで、コンストラクターは次のパラメーターを取ります。
シニア番号 | パラメータと説明 |
---|---|
1 | iterable 反復可能なオブジェクト |
2 | dtype 結果の配列のデータ型 |
3 | count イテレータから読み取るアイテムの数。デフォルトは-1で、これはすべてのデータが読み取られることを意味します |
次の例は、組み込みの使用方法を示しています range()リストオブジェクトを返す関数。このリストのイテレータは、ndarray オブジェクト。
例1
# create list object using range function
import numpy as np
list = range(5)
print list
その出力は次のとおりです-
[0, 1, 2, 3, 4]
例2
# obtain iterator object from list
import numpy as np
list = range(5)
it = iter(list)
# use iterator to create ndarray
x = np.fromiter(it, dtype = float)
print x
これで、出力は次のようになります。
[0. 1. 2. 3. 4.]