個人的なメモ

めもめも.

numpy+ndarray

追加

>>> x = np.array([])
>>> x = np.append(x, [1, 2])
>>> x
array([ 1.,  2.])
>>> x = np.append(x, [3, 4])
>>> x
array([ 1.,  2.,  3.,  4.])

>>> np.append(x, [5, 6, 7, 8], axis=0)
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.])

>>> x = np.append([x], [[5, 6, 7, 8]], axis=0)
>>> x
array([[ 1.,  2.,  3.,  4.],
      [ 5.,  6.,  7.,  8.]])

>>> x = np.append(x, [[9, 10, 11, 12]], axis=0)
>>> x
array([[  1.,   2.,   3.,   4.],
       [  5.,   6.,   7.,   8.],
       [  9.,  10.,  11.,  12.]])

def array_append(array1, array2):
    if(array1.shape == (0,)):
        array1 = np.array([ np.append(array1, array2) ])
    else:
        array1 = np.append(array1, [array2], axis=0)
    return array1

複数の最大値を探索しindexを返す

>>> x = np.array([1, 0, 1, -1, -1])
>>> np.amax(x)
1
>>> np.argmax(x)
0
>>> np.argwhere( np.amax(x) == x )
array([[0],
       [2]])
>>> np.argwhere( np.amax(x) == x ).flatten()
array([0, 2])

任意の行と列を取り出す

In [40]: y = range(10)

In [41]: y
Out[41]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [42]: y[::2]
Out[42]: [0, 2, 4, 6, 8] 

In [43]: y[1::2]
Out[43]: [1, 3, 5, 7, 9] 

In [49]: x
Out[49]: 
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

In [50]: x[0::2].transpose()[:2].transpose()
Out[50]: 
array([[1, 2],
       [7, 8]],