🔷
NumPy配列を作成する方法3選
はじめに
NumPy配列(ndarray)を作成する方法を3つまとめます。
1.np.array()
最も知られている手法であり、配列をndarrayにして返します。
l = [1,2]
arr = np.array(l)
引数と返り値は別オブジェクトです。
arr[0] = 2
l[0],arr[0]
(1, 2)
2.np.asarray()
np.asarray()
でもNumPy配列を作成できます。
l = [1,2]
arr = np.asarray(l)
ただしnp.asarray()
はnp.array()
とは異なり、引数にndarrayが入力された場合は参照オブジェクトを返します。
以下参考。
3.np.fromiter()
np.fromiter()
は配列のみならず、イテラブルなオブジェクトから直接NumPy配列を作成できます。
具体例を3つ紹介します。
l = [1,2]
arr = np.fromiter(l, dtype=int)
d = {'a':1}
arr = np.fromiter(d.dict_value(), dtype=int) #直接np.array()は使えない
def generate():
for x in range(100):
yield x
arr = np.fromiter(generate(), dtype=int) #直接np.array()は使えない
またcount
でアイテムの個数を指定できます。
def generate():
for x in range(100):
yield x
arr = np.fromiter(generate(), dtype=int, count=2) #arr=[0,1]
おわりに
以上でNumPy配列(ndarray)を作成する方法の紹介を終わります。
筆者はいつもnp.fromiter()
の存在を忘れているので、しっかり使い分けたいなと思います。
Discussion