🔷

NumPy配列を作成する方法3選

2024/05/12に公開

はじめに

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が入力された場合は参照オブジェクトを返します。

以下参考。

https://kawats1.hatenablog.com/entry/20210524/1621801307

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