badazim’s blog

素人がプログラミングを勉強しながら覚え書きを書きます

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]]
>>>