Python(numpy)のよくわからないメモ
ダーツの分析でよくハマるところをメモ
まず最初は空配列を作るとき。
一次元配列の空配列は要素数を指定しなくていい。※0.75の意味がわからないが。。
>>> import numpy as np >>> arrays = np.empty((0,3),int) >>> print(arrays) [] >>> array = np.empty(3) >>> print(array) [0.75 0.75 0. ] >>> array = np.empty(0) >>> print(array) []
次に1次元の空配列への要素の追加
>>> array=np.append(array,1) >>> array=np.append(array,2) >>> array=np.append(array,3) >>> print(array) [1. 2. 3.]
最後に二次元配列に一次元配列を挿入する。
np.insertの場合は挿入位置の指定が必要。axis=0をしないと一次元配列になる。
>>> arrays = np.insert(arrays,array,axis=0) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<__array_function__ internals>", line 4, in insert TypeError: _insert_dispatcher() missing 1 required positional argument: 'values' >>> arrays = np.insert(arrays,0,array,axis=0) >>> print(arrays) [[1 2 3]]
二次元配列の最後に挿入するならnp.vstackも使えそう。理由はわからないが二重括弧"(())"にする必要がある模様。
np.appendも使えた。これは配列の次元が一致していないとダメなのかな。np.array([一次元配列])としてあげたら使えた。
>>> array2 = np.array([4,5,6]) >>> arrays = np.vstack(arrays,array2) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<__array_function__ internals>", line 4, in vstack TypeError: _vhstack_dispatcher() takes 1 positional argument but 2 were given >>> arrays = np.vstack((arrays,array2)) >>> print(arrays) [[1 2 3] [4 5 6]] >>> array3 = np.array([7,8,9]) >>> arrays = np.append(arrays,np.array([array3]),axis=0) >>> print(arrays) [[1 2 3] [4 5 6] [7 8 9]] >>>